下記実装はMessageSourceをコンストラクタインジェクションしてる。よくみるやつ
message.propertiesとかでメッセージを一括管理できるから便利
Controller
//省略
messageSource.getMessage("message",null,Locale.JAPAN)
//省略
spock側ではこう書く
ServiceImplTest
@RunWith(Sputnik.class)
class ServiceImplTest extends Specification {
SampleController target
MessageSource messageSource
def setup() {
messageSource = Mockito.mock(MessageSource.class)
target = new SampleController(messageSource)
}
@Unroll
def "MessageSource"() {
setup:
Mockito.when(messageSource.getMessage("message",null,Locale.JAPAN)).thenReturn("dummy-message")
when:
//省略
then:
//省略
where:
//省略
}
おわり
上記のように記載してあげればよしなにしてくれますー
日本語のドキュメントがほとんど存在しなかったから苦労した