【问题标题】:Sinon spy on switch statementSinon 窥探 switch 语句
【发布时间】:2018-10-26 18:37:04
【问题描述】:

有没有办法窥探/存根 switch 语句?我试过了:

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

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

【问题讨论】:

  • 在这种情况下,您需要将 switch 语句提取到它自己的函数中。

标签: unit-testing sinon spy


【解决方案1】:

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

不过,这不是挫折。你应该测试你的单位做了什么,而不是如何他们是这样做的。这种区别有时可能有点模糊,但在这种情况下呢?函数中 switch 的存在与否在 100% 的情况下都是“如何”而不是“什么”。换句话说,它是一个实现细节。

如果你已经到了想要这样的东西的地步,我建议你退后一步,好好想想你为什么想要它。如果将switch 替换为等效的 if/else-if/else 链,您真的希望测试失败吗?应该不会吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2016-09-13
    • 2015-06-14
    • 1970-01-01
    • 2017-02-27
    • 2021-01-09
    • 1970-01-01
    相关资源
    最近更新 更多