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)
这显然是一个简单的例子,但你明白了.什么是标准做法?你是做什么?为什么?
我不知道标准做法是什么,但我将前两种方法与增加的实际结果相结合.
"Substracting 2 from 4 should equal 2, but equals " + value
这不容置疑,并且易于调试.
断言最重要的是测试的实际条件。在 C 中,您可以使用预处理器“字符串化”来输出正在测试的实际条件。我的代码只是输出
Assert Failed: (4-2)==2 : Line 123, File foo.c
Run Code Online (Sandbox Code Playgroud)
如果幸运的话,您还可以获得堆栈转储......