Angular ng测试和ng e2e之间的真正区别是什么
我担心有人接近了我的问题,但我找不到一个令人满意的问题(可能是因为我在Angular 2+世界中非常有限,我理解了一些错误) 据我所知,在完成了几次Hello World和观看了几次YouTube演示后: ng测试:Angular ng测试和ng e2e之间的真正区别是什么,angular,jasmine,protractor,angular-cli,karma-jasmine,Angular,Jasmine,Protractor,Angular Cli,Karma Jasmine,我担心有人接近了我的问题,但我找不到一个令人满意的问题(可能是因为我在Angular 2+世界中非常有限,我理解了一些错误) 据我所知,在完成了几次Hello World和观看了几次YouTube演示后: ng测试: 您使用Jasmine语言编写测试 您可以使用Karma在许多可用的浏览器中测试您的测试 您可以执行单元测试或集成测试 运行所有xxx.component.spec.ts并在浏览器中显示类似于JUnit的最终报告 ng e2e: 您使用Jasmine语言编写测试 您可以使用Ka
- 您使用Jasmine语言编写测试
- 您可以使用Karma在许多可用的浏览器中测试您的测试
- 您可以执行单元测试或集成测试
- 运行所有
并在浏览器中显示类似于JUnit的最终报告xxx.component.spec.ts
- 您使用Jasmine语言编写测试
- 您可以使用Karma在许多可用的浏览器中测试您的测试
- 您在编写测试时考虑了嵌套用户事件
eg. page.navigateTo(); page.getParagraphText() .then(msg => expect(msg).toEqual('Welcome to app!!')) .then(msg => expect(msg).toEqual('xxx')) .then(done, done.fail);
- 您主要在将应用程序部署到一种预生产环境之后,使用量角器执行端到端测试
- 将触发e2e文件夹下的测试,并在命令行控制台中打印结果
...
it('should display the modal when `create Paste` is clicked', () => {
let createPasteButton = fixture.debugElement.query(By.css("button"));
//create a spy on the createPaste method
spyOn(component,"createPaste").and.callThrough();
//triggerEventHandler simulates a click event on the button object
createPasteButton.triggerEventHandler('click',null);
//spy checks whether the method was called
expect(component.createPaste).toHaveBeenCalled();
fixture.detectChanges();
expect(component.showModal).toBeTruthy("showModal should now be true");
expect(element.innerHTML).toContain("source-modal");
});
...
我记得我读过类似“量角器在测试执行期间提供等待/休眠行为”的内容,但当我看到在没有量角器的情况下完成测试时,我看不出这个聚合值在哪里,也无法模拟最终用户。只要您将测试编码为执行与最终用户完全相同的流,它将与Angular Cli创建的e2e文件夹下的e2e测试建议相同
如果我的研究促使我正确理解上面的内容,那么唯一真正的区别就是我作为开发人员组织测试的方式。在幕后没有什么真正不同的事情发生
再次强调,我希望将此视为澄清问题的目的:这里根本没有比较框架的意图。您已经走上了理解所有框架的好道路
- Ng测试(通过Karma启动的Jasmine+角度测试实用程序测试):
- Ng E2E(茉莉花+量角器):
- 单元测试应该代表70%的测试
- 集成测试应占测试的20%
- E2E测试应占您测试的10%
结论:
- 它们的操作方式不同,目的是测试不同的东西(单元功能/完整的工作流程)
- 它们是互补的,这意味着如果您只实现单元/集成测试,您将永远无法保证工作流从a到Z工作;同样,如果您只编写E2E测试,您将永远无法确认工作流中没有副作用
注意:还要注意以下几点:
- Jasmine、Karma和Digrator可以随意定制,因此您可以将它们输出到XML文件中,该文件可以由Jenkins作业处理,而不是不实用的命令行
- 是的,您可以为两者编写相同的代码并有效地测试相同的东西,但请记住,您想要的是高效并编写可维护的测试代码。我提到的比率非常重要
希望这能有所帮助。我相信你总结得相当接近,不清楚你是如何得出这样一个结论的,即幕后没有什么真正不同的事情发生。后者是不涉及测试床的黑盒测试,在