Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 “使用”的目的是什么;“计划”;vs";完";在子堆栈/磁带中?_Javascript_Node.js_Testing_Tdd_Node.js Tape - Fatal编程技术网

Javascript “使用”的目的是什么;“计划”;vs";完";在子堆栈/磁带中?

Javascript “使用”的目的是什么;“计划”;vs";完";在子堆栈/磁带中?,javascript,node.js,testing,tdd,node.js-tape,Javascript,Node.js,Testing,Tdd,Node.js Tape,substack的磁带测试模块允许您使用plan方法提前指定断言的数量,然后它将自动为您调用end。为什么不把end放在测试的末尾呢?使用计划和结束之间有什么区别?显示了计划有效但结束无效的情况-异步测试分辨率。在这种情况下,您并不是明确地说测试应该在什么时候全部解决,而是说最终应该解决多少: 测试(“定时测试”,功能(t){ t、 计划(2); t、 相等(typeof Date.now,“function”); var start=Date.now(); setTimeout(函数(){ t

substack的磁带测试模块允许您使用
plan
方法提前指定断言的数量,然后它将自动为您调用
end
。为什么不把
end
放在测试的末尾呢?使用
计划
结束
之间有什么区别?

显示了
计划
有效但
结束
无效的情况-异步测试分辨率。在这种情况下,您并不是明确地说测试应该在什么时候全部解决,而是说最终应该解决多少:

测试(“定时测试”,功能(t){
t、 计划(2);
t、 相等(typeof Date.now,“function”);
var start=Date.now();
setTimeout(函数(){
t、 相等(Date.now()-start,100);
}, 100);
});
如果我们使用
end
,编写此测试的直观方法如下:

测试(“定时测试”,功能(t){
t、 相等(typeof Date.now,“function”);
var start=Date.now();
setTimeout(函数(){
t、 相等(Date.now()-start,100);
}, 100);
t、 end();
});
…但这将在第二个断言有机会运行之前结束测试


您可以将此进一步推断到需要执行异步或动态代码的任何情况。

我们不能将
t.end()
放入setTimeout()回调中吗?您可以。事后看来,这不是一个很好的例子——更好的计划演示应该涉及潜在的种族条件,如果一定数量的条件有望解决,但没有一个条件解决方案可以声称对结束测试负责。异步元素是正交的。啊,是的,这很有意义!谢谢你,巴尼。