想象一下,我有一个方法:
void Method(bool parameter){
if(parameter){
// first case
} else {
// second case
}
}
Run Code Online (Sandbox Code Playgroud)
哪个是您首选的单元测试组织方法?
选项1:
void MethodTest(){
// test first case
// test second case
}
Run Code Online (Sandbox Code Playgroud)
要么
选项2:
void MethodTestFirstCase(){
// test first case
}
void MethodTestSecondCase(){
// test second case
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我会分别测试这两个.
话虽如此,我对"每次测试只测试一件事"的做法并不是教条主义.有时候,在同一个测试中测试多个东西只会更有实际意义 - 特别是如果到达一个终点意味着要经历另一个点,有时可以将两者结合起来.
在这种情况下,你真的会测试两个单独的东西,而不是一个在去另一个的路上,所以我将它们分开.