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

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时,它不起作用。

最佳答案

对于这种情况,我发现最好的方法是在回调中将变量设置为一些有意义的值(或多个值-可能一个含义还可以,而另一个失败),然后在测试的主体中等待变量被设置(包括超时,因此如果从不设置变量,则测试将失败),然后一旦测试知道设置了变量,则断言其具有期望值。

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

10-02 15:28