诗乃间谍对开关声明

时间:2018-05-16 16:02:47

标签: unit-testing sinon spy

有没有办法间谍/存根交换语句?我试过了:

let spy = sandbox.spy(global, 'switch');

但不幸的是,这不起作用。

1 个答案:

答案 0 :(得分:1)

没有。 switch是语言级控制语句,不会像这样受到影响。

然而,这并非挫折。您应该测试您的单位所做的,而不是 他们是如何做的。这种区别有时可能有点混乱,但在这种情况下呢?函数中是否存在switch将是一个'如何'而不是'什么' 100%的时间。换句话说,它是一个实现细节。

如果您已经想要这样的事情,我建议退一步,真正考虑为什么要这样做。如果用同等的if / else-if / else链替换switch,你真的希望测试失败吗?可能不是。