我是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'
];
});
答案 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;