对不返回值的函数进行单元测试
本文关键字:单元测试 函数 返回值 | 更新日期: 2023-09-27 18:35:01
我一般都在玩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]
方法中对其进行初始化。