【发布时间】:2014-04-03 12:02:48
【问题描述】:
我有一个模块,其中有这个功能
flickrPhotoSearch: function (searchByName, flickrUserKey, numberOfImages, callbackData) {
return $.ajax({
url: commonConstants.BASE_URL + "flickr.photos.search&api_key=" + flickrUserKey + "&tags=" + searchByName + "&format=json&jsoncallback=?",
dataType: 'json',
async: true,
success: function (jsonData) {
if (jsonData.stat === commonConstants.JSON_SUCCESS) {
if (jsonData.photos['photo'].length < commonConstants.DATA_LENGTH) {
callbackData(jsonData);
} else {
var flickrImage = flickrApplication.jsonToImage(jsonData, numberOfImages);
callbackData(flickrImage);
}
} else {
callbackData(jsonData);
}
}
});
}
我想测试这个功能,我选择mocha-phantomjs。这是我的测试用例
describe("flickrphotoSearch", function () {
it("should fail with wrong key", function () {
flickrApplication.flickrPhotoSearch(testConstant.CORRECT_NAME, testConstant.WRONG_KEY, testConstant.CONSTANT_ONE, handleData);
function handleData (photoUrl) {
assert.equals(photourl.stat, "pass", photoUrl.message);
}
});
});
现在这个测试应该失败并给出错误"Invalid API Key"。但它通过了。我认为这是因为我在回调函数中使用了断言,即handleData()。
我正在使用mocha-phantomjs 设置和chai 断言库。
我搜索了教程和演示,但没有找到。我也尝试了mocha-phantomjs 示例,但没有任何帮助,我在这里发布。
请告诉我如何测试mocha-phantomjs中的回调函数。
【问题讨论】:
标签: javascript unit-testing callback mocha.js mocha-phantomjs