angularjs e2e使用模拟http测试断言

时间:2013-11-22 14:19:38

标签: angularjs integration-testing

我目前使用ngMockEE运行我的angularjs测试环境,使用特殊的测试模块允许我模拟http响应;

var things = [thing01, thing02];

$httpBackend.whenGET('/v1/things?').respond(function() {return [200, things]});

在一个单独的文件中,我定义了e2e测试,它调用包含该测试模块的thing.html文件。

然后我定义了这样的e2e测试;

browser().navigateTo('/test/thingTest.html');
expect(element('.table.things tbody tr').count()).toEqual(2);

现在,如果我能以某种方式将两者结合在一起会更好,那么我可以编写这样的断言 - 避免硬编码 2 如果我更新需要随时更新我的things

列表
browser().navigateTo('/test/thingTest.html');
expect(element('.table.things tbody tr').count()).toEqual(things.length);

但是我不太确定这是可行的还是可行的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,您可以使用包含这些值的e2eData.js文件,这些文件将由您的测试和测试页面加载:

在e2eData.js中:

...
var e2eData = {
    things : [thing01, thing02],
    ...
}

在您的e2e模块中:

$httpBackend.whenGET('/v1/things?').respond(function() {return [200, e2eData.things]});

在你的测试中:

expect(element('.table.things tbody tr').count()).toEqual(e2eData.things.length);