我需要为我的JavaScript单页面应用程序组织单元测试和端到端测试.我正在使用AngularJS Protractor/Cucumber进行e2e测试,使用Chai进行单元测试.
我有两个不同的文件夹(unit和e2e文件夹)中的e2e和单元测试,我目前没有利用页面对象设计模式.这些文件是非结构化的,不共享很多代码,所以我多次重复自己.
我认识到这种方法不会扩大规模
是否有最佳实践以这样的方式重新组织测试我编写最少量的代码,保持测试代码DRY?
我正在使用带有angularjs的量角器来创建我的e2e测试.我有很多文件,我的specs数组很大,我想在所有文件中共享一个共同的功能.有没有办法创建一个全局的beforeEach,我可以注入我的函数?exports.config对象是否暴露了某些内容,以便我可以在所有文件中使用公共变量?目前我正在躲避"浏览器"变量,但这可能是危险的.任何帮助深表感谢.谢谢
有没有办法期望元素最终出现在页面上?例如一种方法
browser.wait(protractor.ExpectedConditions.presenceOf(element(by.partialLinkText('Continue'))), 1000, 'Unable to find continue link');
Run Code Online (Sandbox Code Playgroud)
因预期错误而不是超时而失败?本质上是一种在下面的行中使用 aisEventuallyPresent()代替的方法isPresent()
expect(element(by.partialLinkText('Continue')).isPresent()).toBe(true);
Run Code Online (Sandbox Code Playgroud)
作为参考,我正在使用browser.ignoreSynchronization = true即使它是一个 Angular 应用程序,并使用 Jasmine(至少现在是这样)。