考虑这个(bash)函数,它有几个副作用(设置一个全局变量,打印到stdout):
describe() {
printf '\n%s\n' "$1"
skip_specs=false
}
它打印到stdout
并设置全局变量skip_specs
的值。
有哪些优点/缺点:
答案 0 :(得分:1)
每个副作用一次测试的主要专家:
两种副作用的主要测试对象是:
但如果您的目标是确定如何拆分该功能的测试,那么我认为您提出了错误的问题。我想说真正的问题是你的应用程序将这两种效果视为一个单元。
当未设置变量时,是否将消息写入控制台是否有效?当消息未写入控制台时,是否对要设置的变量有效?如果这两个问题中的任何一个的答案都是肯定的,那么你应该同时测试这两种效果。如果是的话,你应该单独测试它们。
请注意,对于任一情况,测试行为仍可能导致每个效果进行多次测试。因此,即使两种效果一起测试,您仍可能最终进行两次或更多次测试。