我们应该选择Chai的`to.be.an('undefined')`还是`to.equal(undefined)`?

时间:2019-09-16 08:21:52

标签: javascript chai

遗憾的是,柴人有多种做事方式。

相对于to.be.an('undefined'),使用to.equal(undefined)有好处吗?

我的直觉是重复使用/重新创建未定义的内容会产生成本。我们的测试跑步者给出了进行单个测试的时间,似乎更重要的是第一次运行(在测试手表上,第二个更快,但是进行两次单独的运行意味着它们都需要花费约2秒钟(完整设置))。

1 个答案:

答案 0 :(得分:1)

我认为这并不重要。我设法找到的最接近答案的是this article

  

从这种意义上讲,使用 expect should 而不是使用自定义代码,以类人的语言,声明性的BDD样式编码期望。

作者似乎并没有对两者进行区分,甚至您的测试也表明两者大致相同。

我说有道理的

编辑

基于this stack overflow answer

  

嵌套的属性越深,将需要更多的时间来执行属性查找。

这意味着to.be.an('undefined')实际上会比to.equal(undefined)慢,这是因为需要进行额外的查找,但是IMO附带的prototype污染可能会带来误报。

与以前一样的结论:顺其自然。