【问题标题】:Using Code Contracts in unit tests在单元测试中使用代码契约
【发布时间】:2015-04-02 15:37:32
【问题描述】:

您认为在您的单元测试中使用代码契约是否可取? 我不认为这是因为它就像创建单元测试来测试你的单元测试。 因此,我不会为单元测试项目激活代码协定静态检查或运行时检查。

为了澄清,我特别想知道您是否会在单元测试中编写代码契约代码。

【问题讨论】:

    标签: visual-studio unit-testing code-contracts


    【解决方案1】:

    我认为为单元测试启用代码契约是个好主意,然后在运行测试时可以捕获任何契约失败。

    但是,除了测试方法使用的辅助方法之外,在测试方法本身中进行任何契约检查通常没有用处。

    【讨论】:

    • 启用代码契约是指运行时检查吗?
    • @LucaCremonesi 是的。在单元测试项目中启用静态检查可能没有多大帮助,但如果你可以节省 CPU 周期,那为什么不呢:)
    【解决方案2】:

    Improved testability

    •每个合约都充当预言机,为测试运行提供通过/失败指示。

    •自动测试工具,例如 Pex,可以利用合约通过过滤掉不满足先决条件的无意义测试参数来生成更有意义的单元测试。

    【讨论】:

    • 我在问我是否应该将代码合同代码放入我的单元测试中。您报告的链接似乎没有考虑这种情况。它只是说明在您的生产代码中使用代码契约可以提高其可测试性。因此,正如@Keith 所说,在单元测试项目中激活静态检查器是有意义的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多