Angular e2e测试 - 未捕获的ReferenceError:未定义注入

时间:2013-08-01 20:59:40

标签: testing angularjs

我是Angular的新手。试着写我的应用程序TDD风格。我要做的是为编写一个测试,它应该显示客户端的数量。要使此测试初始化​​(不使用注入),我只需将标记添加到HTML <h1>Clients (3)</h1>

我想通过添加有2个和0个客户端的检查来进一步扩展这个测试用例,但为了做到这一点,我需要直接修改E2E测试中的范围,我不知道该怎么做。我尝试时得到inject is not defined,如下所示。

测试这个的正确方法是什么?

scenarios.js

describe('myApp', function() {

  describe('Client list view', function() {

    beforeEach(function() {
      browser().navigateTo('/');
    });

    // PASSES
    it('should display a list of clients', function() {
      expect(repeater('.clients li').count()).toBe(3);
    });

    // !!! TEST FAILS !!!
    it('should display the number of clients', inject(function($scope) {
      expect(element('h1').text()).toEqual('Clients (3)');
    }));
  });
});

控制器/客户一览controller.js

'use strict';

angular.module('forecastingApp').controller('ClientListCtrl', function($scope) {
  $scope.clients = [
    'Joe J.',
    'Brad C.',
    'Some Dude'
  ];
});

2 个答案:

答案 0 :(得分:5)

目前,你不能。您可以在使用Jasmine的单元测试中使用inject,但不适用于e2e测试。

答案 1 :(得分:0)

您介意向我们展示您的测试HTML吗?我想知道你的HTML中的脚本文件序列。 是。必须使用http或https运行场景运行器。 或者您可以在单独的html中运行e2e,格式如下:

<html lang="en">
<head>
<title>End2end Test Runner</title>
<meta charset="utf-8">
<base href="../..">
<script src="app/lib/angular/angular-scenario.js" ng-autotest></script>
<script src="test/e2e/scenarios.js"></script>
</head>
<body>
</body>
</html>

注意,您必须参考此文件&#34; angular-scenario.js&#34;