我无法从单个测试规范中监视多个 ajax 请求。我想测试以下内容myFirstFunction()
并mySecondFunction()
使用 JASMINE。
function myFirstFunction() {
$.postJSON('test1.htm', {operation:operation}, function (data) {
if (data != null && data.errorMsg != null && data.errorMsg.length > 0) {
$.populateErrorMessage(data);
} else {
operationAccess = data;
var tempAccessFlag = operationAccess[0].accessFlag;
if (tempAccessFlag) {
mySecondFunction();
}
}
});
}
function mySecondFunction(operation, operationAccess, reason) {
$.postJSON('test2.htm', {windowStart:0, windowSize:4}, function (data) {
if (data != null && data.errorMsg != null && data.errorMsg.length > 0) {
$.populateErrorMessage(data);
} else {
if (null != data && data.accessFlag == "SUCCESS") {
//do something
} else {
//do something
}
}
});
}
我编写了以下测试规范并能够监视第一个 postJSON,如下所示-
it("Test myFirstFunction & mySecondFunction", function () {
var operation = "customerPreviousOrder";
var myFirstFunctionData = [{"accessFlag":true}]
spyOn($, "ajax").andCallFake(function(params) {
params.success(myFirstFunctionData);
});
myFirstFunction();
expect(<Something>).toEqual(<Something>);
});
我想mySecondFunction()
从上面的测试规范进行测试。因为myFirstFunction()
调用mySecondFunction()
. 那么我怎样才能窥探第二个 postJSON 呢?