2013-11-22 39 views
0

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

var things = [thing01, thing02]; 

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

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

然后我定义一个e2e测试,像这样;

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

现在,将是很好的,如果我能以某种方式对夫妇两个togther,这样我就可以写这样一个说法 - 避免硬编码是这将需要更新随着时间的推移,如果更新我的的things

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

列表不过,我不太清楚,如果这是可能的或可取的。有什么想法吗?

回答

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); 
+0

我想我试图避免使用窗口范围,但是,这是一种方法。 – GrahamB