angularjs - 使用 Protractor 时仅在测试上下文中加载 ngMock

标签 angularjs protractor angularjs-ngmock ngmocke2e

我正在将 Angular 应用程序的所有 Protractor E2E 测试切换为 ngMock ,这样我们就可以模拟我们的资源/http 调用。但是,我找不到推荐的加载方法ngMock在那种情况下。

当然,我不想将脚本本身包含在我的实时应用程序中,但我没有看到通过 Protractor 注入(inject)额外 script 的明确方法。元素,或动态加载它。

最佳答案

您可以做的是使用grunt-targethtmlgupl-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/

相关文章:

javascript - 为什么我在 angularjs 中得到缩放图像?

node.js - 使用 Protractor 作为库时“没有期望的方法”

javascript - cucumber 和 Protractor 有什么区别?

angularjs - 在哪里声明 ngMock 模块

javascript - 自定义过滤器出现问题,我缺少什么?

angularjs - 为什么 ng-bind-html 不显示任何内容?

javascript - 使用 aync 和 wait 时, Protractor 控制台中会显示 UnhandledPromiseRejectionWarning : Unhandled promise rejection. 警告

javascript - Angularjs ngMock 在每次测试之前或在每个测试用例上注入(inject)?

angularjs - $httpBackend .whenGet 不是 Angular 中的函数

javascript - setInterval淡入然后淡出纯javascript,没有jquery或css