Java 单元测试直接枚举调用的最佳实践

Java 单元测试直接枚举调用的最佳实践,java,string,unit-testing,enums,Java,String,Unit Testing,Enums,编写单元测试时是否应直接调用Enum 这里有一个选择: String expected = "here is not important text" + ObjectState.GOOD_STATE.stringValue(); assertEquals(expected, actual); 这是第二个 String expected = "here is not important text GOOD_STATE"; assertEquals(expected, actual); 第一种选

编写单元测试时是否应直接调用Enum

这里有一个选择:

String expected = "here is not important text" + ObjectState.GOOD_STATE.stringValue();
assertEquals(expected, actual);
这是第二个

String expected = "here is not important text GOOD_STATE";
assertEquals(expected, actual);
第一种选择是易于维护的代码,而第二种选择是当事情变得复杂时人类可读的代码


那么哪一个更好呢。有什么最佳实践吗?

如果正文的开头部分不重要,那么您应该只测试重要部分:

assertTrue(actual.endsWith(ObjectState.GOOD_STATE.stringValue()));
或者只是

assertTrue(actual.contains(ObjectState.GOOD_STATE.stringValue()));

为什么要检查此处不重要的文本?你想查什么?GOOD_STATE的stringValue,或者您得到的ObjectState是GOOD_STATE?您可以在asserEquals注释中添加注释,expected,实际上这个问题归结为当事情变得复杂时可读性比可维护性更重要吗?这就是我解释它的方式,因此它不是严格地负责的。