spek テスト (私たちにとって新しいこと) を作成しようとすると、モックの呼び出しを検証しようとしているときにエラーが発生します。エラーは次のとおりです。
このコンテキストでは「m3CustomerService」にアクセスできません。java.lang.AssertionError: 'm3CustomerService' はこのコンテキストではアクセスできません。
このエラーが発生し続ける理由を理解できませんでした。誰にもアイデアはありますか。
package com.crv.decustomeradapter.m3
import com.crv.decustomeradapter.m3.client.M3Client
import org.assertj.core.api.Assertions.assertThat
import org.mockito.BDDMockito.then
import org.mockito.Mockito.mock
import org.spekframework.spek2.Spek
import org.spekframework.spek2.style.specification.describe
object M3CustomerServiceSpekTest : Spek({
val m3ClientMock by memoized { mock(M3Client::class.java) }
val m3LocationEligibilityCheckServiceMock by memoized { mock(M3LocationEligibilityCheckService::class.java) }
val m3CustomerEligibilityCheckServiceMock by memoized { mock(M3CustomerEligibilityCheckService::class.java) }
describe("Calling the mock") {
it("makes it return empty list") {
assertThat(m3ClientMock.unfilteredCustomersFromM3).isEmpty();
}
}
describe("Initiating the service ") {
val m3CustomerService by memoized {
M3CustomerService(m3CustomerEligibilityCheckServiceMock, m3LocationEligibilityCheckServiceMock,
m3ClientMock)
}
describe("and calling it with no return values for the mocks") {
val m3Customers = m3CustomerService.processM3CustomersFromM3()
it("makes it return an empty list") {
assertThat(m3Customers).isEmpty()
}
it("calls the m3ClientMock") {
//This test gives the error
then(m3ClientMock).should().unfilteredCustomersFromM3
}
}
}
})
更新: memoized を使用してリストを取得すると、m3CustomerService への呼び出しが行われないため、テストは失敗します。