МакJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Мак

Сообщение Anonymous »

Я использую Spock, чтобы проверить Java-код. Например, у меня есть следующий класс Java: < /p>
public class Github implements RemoteRepository {
@Override
public Boolean isBranchExist(String branch) {
return new HttpRequest().post();
}
}
< /code>
Сам класс httprequest также является моим Java-Class. Я пытаюсь издеваться над созданием экземпляра класса httprequest.def "mocking HttpRequest constructor"() {
given:
RemoteRepository repository = new Github()

def request = Mock(HttpRequest)
GroovyMock(HttpRequest, global: true)

new HttpRequest() >> request

and:
request.post() >> Boolean.FALSE

when:
def res = repository.isBranchExist("branch_exist")

then:
res == false
}
< /code>
Надее не происходит, тест не проходит. Oracle OpenJDK 23.0.1: < /p>
plugins {
id 'groovy'
}

dependencies {
implementation 'org.apache.groovy:groovy-all:4.0.27'
implementation 'net.bytebuddy:byte-buddy:1.17.5'
testImplementation 'org.spockframework:spock-core:2.4-M6-groovy-4.0'
}

tasks.named('test') {
useJUnitPlatform()
}
< /code>
p.s. Я понимаю, что могу перепроектировать архитектуру, передать экземпляр HttpClientBuilder в конструктор GitHub, который обеспечит возможность отправлять HTTP -запросы (как это делается в библиотеке Apache HttpComponents), а не создавать объекты HTTPRequest напрямую, но я заинтересован в этом конкретном случае, почему он работает в коде, но не работает. /> Код в этом случае значительно упрощен, на самом деле не применим, просто глупый пример < /p>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -java-code
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»