Я обновляю тесты Спока. Есть несколько пародий и ресурс @Rule
:
AuthTokenService mockAuthTokenService = Mock()
ObjectMapper mockObjectMapper = Mock()
GeneralConfiguration conf = Mock();
def CLA_BASE_URL = "http://some-prefix/";
@Rule
ResourceTestRule resource = ResourceTestRule.builder()
.addResource(new AuthResourceImpl(mockAuthTokenService, mockObjectMapper, conf))
.build()
Мне нужно, чтобы ресурс имел разные conf
для двух разных тестов. Поэтому я попытался
def 'create auth token with configured URL prefix'() {
setup:
AuthTokenMetaData authTokenMetaData = buildAuthTokenMetaData()
when:
conf.getClaBaseUrl() >> CLA_BASE_URL
...
Но это не сработало, потому что resource
создается один раз.
Поэтому мне пришлось добавить еще один ресурс.
GeneralConfiguration conf2 = new GeneralConfiguration().setClaBaseUrl(CLA_BASE_URL);
@Rule
ResourceTestRule resource2 = ResourceTestRule.builder()
.addResource(new AuthResourceImpl(mockAuthTokenService, mockObjectMapper, conf2))
.build()
Но это звучит немного странно, и после короткой встречи со Споком я думаю, что у нее есть лучший подход к этому.
Как я могу параметризовать ResourceTestRule
?
Это должно быть правило JUnit из-за базовой реализации ResourceTestRule
.