我有一個角度的應用程序正在進行一些茉莉花測試。我最近添加了一個新的方法來在我的一個服務中對彈性搜索進行查詢,它看起來像這樣。爲茉莉花集成測試做出真正的異步請求
test:
function(){
return "Working";
},
executeSearch:
function(field, value, size, page_number){
return service.executeRegExSearch(field, value, size, page_number);
},
//new method
executeRegExSearch:
function(field, value, size, page_number){
//main search body, I know it works because
//I am getting expected results in the browser
}
然後在我的茉莉花測試中,我有這樣的事情。
//initialization stuff
var $httpBackend;
var searchAPI;
beforeEach(inject(function($injector){
jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000;
$httpBackend = $injector.get('$httpBackend');
searchAPI = $injector.get('searchAPI');
}));
it("is loaded properly", function(){
expect(searchAPI.test() == "Working").toBe(true); //passes
});
it("can make a request", function(){
var field = "col_name";
var value = "bb.*"; //this is matching in my browser/application
var size = 10;
var page_number = 1;
var res;
searchAPI.executeSearch(field, value, size, page_number).then(function(res){
res = res;
alert(JSON.stringify(res));
done();
});
$httpBackend.flush();
});
但是當我跑,我得到的錯誤
Unexpected request: GET http://myserver/index-1/_search?source={"query":{"regexp":{"col_name":{"value":"bb.*"}}}}"&size=10&from=0 No more request expected in http://localhost:8081/js/angularjs/angular-mocks.js (line 1180)
我不知道如何使用的嘲笑,還是我甚至知道我在做它。我所要做的就是能夠運行一套測試,實際調用我的後端,以確認事情正在被正確集成......你知道......集成測試。
任何人有任何建議?
好的,我想同時做兩個,所以我會檢查出這兩個鏈接。謝謝! – Zack 2014-09-03 16:35:21
除了使用量角器進行e2e teting之外,您還可以使用ngMidway測試器調用真實的後端形式Jasmine測試。我建議閱讀http://stackoverflow.com/questions/20864764/e2e-mock-httpbackend-doesnt-actually-passthrough-for-me,尤其是重擊http://plnkr.co/edit/552UuwY6mQGyrMnJMqPx?p=預覽 – tapatron 2014-09-03 20:27:17