我玩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);
}
是的,没有错或不常见的。你的测试没问题。 –
这很好,我会建议使用一些随机数而不是一个常数,以增加覆盖率。 – Ofiris
我不会建议使用随机数字,随机数字可能会导致测试有时会通过,有时会失败。如果有特殊情况需要调查(如int.MaxValue,int.MinValue,溢出等),请为这些测试创建一个单独的测试。在任何情况下,它们可能都需要特殊的处理,运行时的默认行为很少是你想要的。 – jessehouwing