还可以在需要时将类注入构造函数中。当您使用这种方法时,您可以轻松地在接口后面模拟这个类,并且可以使用模拟创建测试。
例如一些伪代码:
你的Utility
班级:
public class Utility implements IUtility {
@Override
public void add() { ... }
@Override
public void remove() { ... }
}
您的Utility
使用类:
public class UtilityUsingClass {
private IUtility utility;
public UtilityUsingClass(IUtility utility) {
this.utility = utility;
}
public void myMethod() {
// Use Utility class
utility.add();
...
}
}
在测试中它可能看起来像这样:
@Test
public void testMyMethod() {
UtilityUsingClass testClass = new UtilityUsingClass(new UtilityMock());
testClass.myMethod();
// assert stuff
}
UtilityMock
: _
public class UtilityMock implements IUtility {
@Override
public void add() { // Implements mock logic ... }
@Override
public void remove() { // Implements mock logic ... }
}