c# - 代码契约真的有助于单元测试吗?

标签 c# unit-testing .net-4.0 code-contracts

我对单元测试有相当多的了解。我一直在尝试阅读代码契约(Contract)。它真的有助于单元测试吗?它是否被高估了,尤其是当我们谈论代码契约有助于进行单元测试时。我特别指的是 .net 4.0 中的契约(Contract)。我使用 nunit 进行单元测试。

最佳答案

。单元测试基本上是一个契约(Contract),上面写着,MyMethod() 接受 X 并期望 Y 将是一个结果,如果它不这样做,那么单元测试就会失败,并且作为 MyMethod() 的开发者,您会收到警告,您破坏了里面的东西。代码契约确实可以帮助你编写单元测试,因为契约中的要求使你在编写单元测试时更容易了解单元测试的要求。然而,代码契约的真正原因不在于你,而在于使用你创建的 API 的其他开发人员。单元测试让您知道正确的输入和输出,但是当您将代码发布到野外时,单元测试不会与 .dll 一起发布。代码契约为其他开发人员提供了通过编译时契约和检查了解这些相同需求的好处。契约(Contract)可以防止那些有不阅读方法文档并开始传递内容的可怕倾向的开发人员(我),因此现在他们将通过契约(Contract)得到积极警告。

关于c# - 代码契约真的有助于单元测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3345314/

相关文章:

c# - .NET 4.0 中的 IProgress<T>

c# - IGeoPositionWatcher<GeoPosition>.PositionChanged 没有被解雇,但是 GeoCoordinateWatcher.PositionChanged 是

c# - 用整数绑定(bind)下拉列表

Angular Testing : mock a HttpResponse containing a blob

c# - 我怎样才能防止我的 NUnit 测试有时并行运行

visual-studio-2010 - SpecFlow - 运行并行测试

.net-4.0 - 如何解决 Windbg 中的 GetFrameContext 失败

c# - API Controller 的通用 ActionResult 返回类型

c# - 在转换为 unsigned int 32 时,这在 c# 中意味着什么

c# - 想要将 XElement 的全部内容作为字符串返回