我需要测试以确保在ajax调用的.then块内正确调用了函数。
我尝试对.then块中调用的函数进行监视,但是对ajax调用本身进行监视。
//the source
eLterRgnList.GetList = function (pk) {
var url = "../../SystemResource/Regions/GetList.asp";
var options = {
dataType: 'JSON'
}
ajaxHelper.CallWithSessionExp(url, null, options).then(function (res) {
eLterRgnList.buildList(res, pk);
});
}
//the test
describe("eLterRgnList.GetList", function () {
it("should call ajaxHelper of dataytype 'JSON' with data : pk, then build the list with the result", function () {
var pk = 2;
var ajaxSpy = spyOn(ajaxHelper, 'CallWithSessionExp').and.returnValue(Promise.resolve(''));
eLtrRgns.eLterRgnList.GetList(pk);
expect(ajaxSpy)
.toHaveBeenCalledWith(
'../../SystemResource/Regions/GetList.asp',
null,
Object({ dataType: 'JSON' }));
//still need to figure out how to test what happens within the .then
});
});
“ eLtrRgns”是命名空间包装器。
此测试通过了,但我真的希望能够在诺言中测试事物。某些背景,而不是棱角分明的框架,不使用导入/导出。