使用Protractor时仅在测试环境中加载ngMock

时间:2015-05-21 23:39:05

标签: angularjs protractor ngmock ngmocke2e

我将角度应用程序的所有量角器E2E测试切换到ngMock,以便我们可以模拟资源/ http调用。但是,我找不到在该方案中加载ngMock的推荐方法。

我当然不希望将脚本本身包含在我的实时应用中,但是我没有通过量角器看到一个明确的方法来注入额外的script元素,或者动态加载它

1 个答案:

答案 0 :(得分:0)

您可以使用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)-->

首先使用targethtml target / e2e

配置您的grunt任务以执行mock任务
 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方法注入模拟模块