如何分离单元测试方法?

Jad*_*ias 3 unit-testing

想象一下,我有一个方法:

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)

Jon*_*eet 6

在这种情况下,我会分别测试这两个.

话虽如此,我对"每次测试只测试一件事"的做法并不是教条主义.有时候,在同一个测试中测试多个东西只会更有实际意义 - 特别是如果到达一个终点意味着要经历另一个点,有时可以将两者结合起来.

在这种情况下,你真的会测试两个单独的东西,而不是一个在去另一个的路上,所以我将它们分开.

  • +1表示"一个人在前往另一个人的路上".这通常是在单个测试中进行多次检查的合理理由. (3认同)