gpt4 book ai didi

c# - 单元测试不返回值的函数

转载 作者:行者123 更新时间:2023-11-30 15:32:16 26 4
gpt4 key购买 nike

我正在研究 TDD 和一般的单元测试。我见过的所有示例都返回值,这似乎是最简单的情况。但是,如果我的函数没有返回值怎么办?

例如,假设我有一个 Actor 类,我需要一种方法来增加它的“健康”。我做了一个如下所示的单元测试,然后让 Actor 类满足它,但这样做可以吗?我在单元测试中没有看到很多使用属性的例子。我应该以不同的方式思考这类问题吗?

    [TestMethod]
public void IncreaseHealth_PositiveValue_PositiveHealth()
{
Actor a = new Actor();

int beforeHealth = a.Health;

a.IncreaseHealth(5);

int afterHealth = a.Health;

Assert.AreEqual(beforeHealth + 5, afterHealth);
}

最佳答案

这个测试是一个好的开始。然而,就像测试返回值的方法一样,你应该在有副作用的方法上测试边界条件。在这种情况下,您还应该检查

  • 您的方法不接受负数(或接受负数并按预期工作)
  • 当通过溢出整数的某个大值增加健康时,结果仍然是可预测的(例如,健康上限为某个值)
  • 将健康值减少大于当前健康值时,剩余健康值不会变为负值(除非允许)
  • 当健康归零时,应该触发任何其他可能触发的事情。

虽然您可以使用本地初始化对象,但您也可以将一个对象放在单元测试对象上,并在您的 [Setup] 方法中对其进行初始化。

关于c# - 单元测试不返回值的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19336272/

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