Я только начал работать на платформе тестирования Spock для приложений Java. У меня нет опыта работы на Groovy. Как мы вводим макет в конструктор с использованием структуры Spock? Ниже приведен мой код и тестовый пример.Как вводить макет объекта в конструктор?
public class ResourceClass {
private final IDynamoDBMapper factory = new DefaultDynamoDBClientFactory(DynamoDBConfig.fromProperties()).mapperClient();
private ServiceClass service;
@Inject
public ResourceClass(ServiceClass service) {
this.service = service;
}
}
И я попытался создать тестовый класс, как показано ниже.
class ResourceClassTest extends Specification {
ResourceClass eventsResource
ServiceClass service
def setup() {
service = Mock(ServiceClass)
eventsResource = new ResourceClass(service)
}
Но я получаю ниже исключения при eventsResource = новый ResourceClass (услуга)
java.lang.NullPointerException: Domain name must be specified.
at java.util.Objects.requireNonNull(Objects.java:228)
Любые предложения, пожалуйста?
Спасибо Gergely. Я изменил исходный код, чтобы ввести DynamoDBMapper в класс ресурсов. Это происходит только при использовании Spock или с mockito? – vamsi
Это происходит при запуске тестов Spock, но это не проблема с нажатием кнопки, но при запуске приложения и при запуске тестов путь к классам обычно отличается. Поэтому, если у вас есть файл конфигурации динамо-db в пути к классам при запуске приложения, но не при выполнении тестов –