Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在回调函数javascript中使用断言_Javascript_Unit Testing_Asynchronous_Callback_Js Test Driver - Fatal编程技术网

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

如何在回调函数javascript中使用断言,javascript,unit-testing,asynchronous,callback,js-test-driver,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) {

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

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

对于这种情况,我发现最好的方法是在回调函数中设置一个变量,使其成为有意义的值(或者一个值,可能一个值表示ok,另一个值表示失败),然后在测试体中等待变量被设置(包括一个超时,这样如果变量从未设置,测试将失败),然后一旦测试知道变量已设置,则断言它具有预期值


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

您确定
photoUrl.stat==“ok”
调用回调?是的,我们处于这种情况。我建议使用像Mocha这样的测试运行程序,并阅读异步测试的文档。否则,您自然需要进行最小的测试(我想您已经做到了)自己支持异步测试。Mocha是一种不同的设置。我们可以在js测试驱动程序中实现这一点吗?