断言消息:假设失败或假设成功

Dan*_*ley 10 language-agnostic testing unit-testing

在使用任何语言进行测试时,每个人如何表达他们的断言消息

我看到三种明显的方式:

# assume failure
assert (4-2) == 2, "Subtracting 2 from 4 doesn't equal 2"

# describe success
assert (4-2) == 2, "Subtracting 2 from 4 should equal 2"

# be vauge with failure
assert (4-2) == 2, "Subtracting 2 from 4 is broken"
Run Code Online (Sandbox Code Playgroud)

这显然是一个简单的例子,但你明白了.什么是标准做法?你是做什么?为什么?

Vin*_*vic 7

我不知道标准做法是什么,但我将前两种方法与增加的实际结果相结合.

"Substracting 2 from 4 should equal 2, but equals " + value

这不容置疑,并且易于调试.


Rod*_*ddy 3

断言最重要的是测试的实际条件。在 C 中,您可以使用预处理器“字符串化”来输出正在测试的实际条件。我的代码只是输出

Assert Failed: (4-2)==2 : Line 123, File foo.c
Run Code Online (Sandbox Code Playgroud)

如果幸运的话,您还可以获得堆栈转储......