Нет - это именно тот вид статической связи, что вам необходимо разработать из ваших классов, чтобы сделать их можно проверить.
Вам необходимо предоставить SecurityInterface
через поставщика или завод, который вы вводите: вы можете ввести экземпляр, который вызывает new
в вашем производственном коде, и экземпляр, который возвращает макет в ваш тестовый код.
class MyClass {
void doSomething(SecurityInterfaceSupplier supplier) {
Object port = supplier.get().getSecurityPortType();
}
}
interface SecurityInterfaceSupplier {
SecurityInterface get();
}
class ProductionSecurityInterfaceSupplier implements SecurityInterfaceSupplier {
@Override public SecurityInterface get() { return new SecurityInterface(); }
}
class TestingSecurityInterfaceSupplier implements SecurityInterfaceSupplier {
@Override public SecurityInterface get() { return mockSecurityInterface; }
}
Хм .. Не думал о власти. Хорошее предложение! – GregD