IES 前端架构 - 基础体验 - 龙逸楠
End-to-end testing is a technique used to test whether the flow of an application right from start to finish is behaving as expected
在实际场景中,我们通常将测试从功能点的维度拆分。
E2E testing 主要用来测试业务流程的正确性,单个组件内部的逻辑验证主要依靠 unit test。
从使用场景来说,E2E testing 是用来捕获那些重大的影响用户可用性的缺陷。而 unit test 主要是用来捕获那些边缘场景下的缺陷。
观察一个函数或者方法,不改变原有方法的行为(参数,实现和返回值)。可以拿到被观察函数/方法被调用的次数,和参数等信息
控制一个函数/方法的行为。比如第一次调用的时候的返回值,或者接收到某个参数的时候的返回值。
和 Stub 类似,但是 Stub 是在运行时决定在接受到某种输入的时候响应某个输出,而 Mock 是静态的。
Class MockService {
getUser() {
return Promise.resolve({ id: 1, name: 'mock user' })
}
}
能力大同小异,都可以 Cover 大部分的业务场景
Selenium 依赖 Python 工具链,对前端项目不是很友好
Karma 和 Protractor 都是随着 AngularJS 诞生,其生态围绕 AngularJS 发展
describe('My First Test', () => {
it('clicking "type" navigates to a new url', () => {
cy.visit('https://example.cypress.io')
cy.contains('type').click()
// Should be on a new URL which includes '/commands/actions'
cy.url().should('include', '/commands/actions')
})
})
https://code.byted.org/appmonitor/maiev