当条件基于枚举方法时,是否应该在单元测试中测试每个条件?

我的意思是,如果我的枚举值很多,则单元测试会变得太大而无法达到所有可能的条件。

例:

public enum AnEnum {
   A(true), B(false), C(false), D(true);

   AnEnum(boolean isError) {
       this.isError = isError
   }
}

public class TestEnum {
    public String method(AnEnum anEnum) {
         if( anEnum.isError() ) {
              return "An Error";
         }
         return "Not An Error";
    }
}

最佳答案

您可能正在使用ParametrizedTests,例如:

@DataProvider
public static Object[][] provideEnumasAndExpectedErrorResult() {
  return new Object[][] {
    { AnEnum.A, true },
    { AnEnum.B, false }
  };
}

@Test
@UseDataProvider( "provideEnumasAndExpectedErrorResult" )
public void testEnumErrors( AnEnum enumConstant, boolean expectedResult expectedResult ) {
  assertThat( enumConstant.isError(), is(expectedResult));


这样,您就可以以某种方式(更简洁)写下所有枚举和预期结果。

10-05 23:32