我使用maven来管理项目中的依赖项。 我在编写测试用例时已经看到,其中一些在maclipse构建时失败而在eclipse中传递。我对它进行了调试,发现在整个构建过程中保留了它们的值后,会有一些类的静态最终成员被初始化。这是一个多模块项目。
是否可以针对不同的测试用例更改最终成员的值? 请问我是否需要更多说明。 任何链接/提示或想法可能会有所帮助。 谢谢。
答案 0 :(得分:1)
静态最终成员是表达常量的Java方式。首先尝试修改测试,使其与这些常量的值一起使用。如果无法做到这一点,您可以添加第二个用于测试目的的构造函数来覆盖这些值。请参阅以下示例:
现有代码:
public class SomeClass {
private static final int LIMIT = 30;
public SomeClass() {
...
}
public void doSomething() {
... //the code that uses LIMIT.
}
}
添加测试使用的第二个构造函数:
public class SomeClass {
private static final int DEFAULT_LIMIT = 30;
private final limit
public SomeClass() {
this(DEFAULT_LIMIT);
}
public SomeClass(int limit) {
this.limit = limit;
...
}
public void doSomething() {
... //the code uses limit now.
}
}