如何在回调函数javascript中使用断言

时间:2014-01-09 12:23:22

标签: javascript unit-testing asynchronous callback js-test-driver

我在测试用例中有以下代码:

flickrJson.prototype.testFlickrPhotoSearch = function() {
var wrongName = "googday";
var key = "3f807259749363aaa29c76012fa93945";
flickrPhotoSearch(wrongName, key, 1, handleData);

}

handleData功能:

var handleData = function(photoUrl)
{
    if (photoUrl.stat)
    {
        if (photoUrl.stat === "ok")
        {
            assertEquals(1,2);

        }
    }
}

我想在这个测试用例中失败。但是当我在handleData函数中写入assert时,它不起作用。

1 个答案:

答案 0 :(得分:0)

对于这样的情况,我发现最好的方法是在回调中将一个变量设置为一些有意义的值(或者值 - 也许一个意味着ok,另一个失败),然后在测试体中等待变量要设置(包括超时,如果变量从不设置,测试将失败),然后一旦测试知道变量已设置 - 断言它具有预期值。

这不是JavaScript或任何特定单元测试库特有的问题;但这是测试异步代码时固有的问题。