Может ли выпустить финальные классы? Если да, то как? Результаты поиска подняли этот gist, что, казалось бы, подразумевает это, но я не могу найти примеров этого. Я также нашел сообщения на форуме, которые говорят, что насмешливые финальные классы не поддерживаются.Mock final class in Spock
6
A
ответ
14
Эта спецификация:
@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
@Grab('cglib:cglib-nodep:3.1')
import spock.lang.*
class Test extends Specification {
def 'lol'() {
given:
def s = Mock(String) {
size() >> 10
}
expect:
s.size() == 10
}
}
заканчивается следующим исключением:
JUnit 4 Runner, Tests: 1, Failures: 1, Time: 29 Test Failure:
lol(Test) org.spockframework.mock.CannotCreateMockException:
Cannot create mock for class java.lang.String because Java mocks cannot mock final classes.
If the code under test is written in Groovy, use Groovy mock.
Решение использовать GroovyMock
:
@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
@Grab('cglib:cglib-nodep:3.1')
import spock.lang.*
class Test extends Specification {
def 'lol'() {
given:
def s = GroovyMock(String) {
size() >> 10
}
expect:
s.size() == 10
}
}
, который работает хорошо.
+0
Любая идея, почему это не работает для String.length()? –
+0
Может ли разница с String.length() быть, потому что она определена в классе Java String, а не в версии Groovy? Этот [ответ] (http://stackoverflow.com/a/12177035/369722), кажется, так предлагает. –
Смежные вопросы
- 1. Mock final class with Mockito 2
- 2. Autowire mock with Spock in Spring Application
- 3. Mock Static Enum Inside Final Class
- 4. Spock Mock с коллекцией Guava
- 5. Mock Tornado class in Python
- 6. Определение Spock mock behaviors
- 7. Mock parent final method
- 8. Grails Spock Mock Injected Service in Unit Test
- 9. Spock Mock internal Дата объекта
- 10. Spock mock возвращает неправильное значение
- 11. Can Spock Mock Java-конструктор
- 12. Spock Mock не работает для модульного теста
- 13. PHP Mocking Final Class
- 14. Java final abstract class
- 15. java singleton class vs final class
- 16. spock - mock static method не работает
- 17. Преобразование mock в JSON в Spock
- 18. динамически переопределить свойство объекту, возвращаемому Mock() spock
- 19. Выполнение обратного вызова из spock mock
- 20. Spock Mock метод, соответствующий объектам с заполнителями
- 21. Mock private static final String using Mockito
- 22. Moq. Mock system class
- 23. Mock java.time.format.DateTimeFormatter class
- 24. final array in Java
- 25. final int in Java
- 26. Java final class с константой
- 27. JUnit Mockito mock one method in another class Ошибка
- 28. Mock namespaced class с SimpleTest
- 29. Служба Mock Spring в контрольном тестировании с использованием Spock
- 30. Mock File class и NullPointerException
Иногда с Groovy лучше всего просто попробовать. – cjstehno
@cjstehno Я попробовал и получил исключение. Но я подумал, может быть, есть особый способ сделать это, о котором я не знаю. –
Отвечает ли мой ответ на проблему? – Opal