我正在将 Angular 应用程序的所有 Protractor E2E 测试切换为 ngMock
,这样我们就可以模拟我们的资源/http 调用。但是,我找不到推荐的加载方法ngMock
在那种情况下。
当然,我不想将脚本本身包含在我的实时应用程序中,但我没有看到通过 Protractor 注入(inject)额外 script
的明确方法。元素,或动态加载它。
最佳答案
您可以做的是使用grunt-targethtml或gupl-targethtml因此,在您的 index.html
中,您可以添加何时添加脚本的条件:
<!--(if target mock || e2e)><!-->
<script src="dev-mocks/mock-utils.js"></script>
<script src="dev-mocks/modules/authentication-service-mock.js"></script>
<!--<!(endif)-->
首先配置您的 grunt 任务以使用 target
e2e
/mock
执行 targethtml
任务
grunt.registerTask(
'e2e',
'Automated tests',
function(target) {
var tasks = [
'clean:server',
'targethtml:e2e',
'concurrent:server',
'autoprefixer',
'connect:e2e'
];
return grunt.task.run(tasks);
});
Here是一个工作模板,包含实现 Protractor 所需的所有任务、包和逻辑+ CucumberJS + sugar-step (为了轻松执行同步-异步步骤),还可以使用 CucumberJS 的 @Around 方法动态注入(inject)模拟模块
关于angularjs - 使用 Protractor 时仅在测试上下文中加载 ngMock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30386137/