gpt4 book ai didi

.net - VB.NET 和 NUnit - TDD

转载 作者:行者123 更新时间:2023-12-04 17:05:14 25 4
gpt4 key购买 nike

我正在使用 VB.NET 和 NUnit 学习 TDD。我想知道什么是最好的做法:在测试方法中使用大量 Assert 方法还是对每个方法使用一个 assert 方法?

这是我的代码。谢谢你。

Imports NUnit.Framework

<TestFixture()> _
Public Class CalculatorTest
<Test()> _
Public Sub TestAdd()
Dim calculator As Calculator = New Calculator()

Assert.AreEqual(2, calculator.sum(1, 1))
Assert.AreNotEqual(3, calculator.sum(2, 2))
Assert.AreEqual(-1, calculator.sum(0, -1))
Assert.AreNotEqual(3, calculator.sum(1, 1))
End Sub
End Class

最佳答案

考虑它的更好方法是一次测试一件事。使用尽可能多的断言来测试一件事,但通常只有一个。多个断言可能表明您一次测试不止一件事情,但在我看来,这不是硬性规定。最好的指导是,您不希望在独立概念之间的测试中创建依赖项。

在您的示例中,您实际上正在测试 4 件事,尽管实际上您可能只需要其中的两个,因为它们涵盖了相同的领域。我建议测试当您添加两个正数、两个负数以及一个负数和一个正数以及负数和正数结果时会发生什么。然后我会考虑数学性质并测试可交换性和加性恒等式(零)。最后,我会测试边界条件——正溢出和负溢出等。注意,这可能是也可能不全面,即,我认为我已经涵盖了基础,但我并没有试图详尽无遗;我只是想说明您将如何考虑要编写哪些测试,是的,我将使用单个断言进行每个单独的测试。

对于更复杂的事情,您可能有多个断言来测试相同的“事物”——例如,您可能想要检查一行是否正确插入到具有给定输入集的数据库中。我认为在单个测试中测试所有列都具有正确的值是完全可以接受的,而不是单独测试每个属性。其他人可能会有所不同,但我认为在这种情况下,您不会通过测试所有属性是否具有正确的值来创建任何依赖项,因为插入是一个原子操作。

关于.net - VB.NET 和 NUnit - TDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3132337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com