Я пытаюсь написать тестовые случаи для одного из потоков, который вызывает службу оракула, которая затем вызывает простой сервис Java для получения некоторых данных из CSV.Я хочу посмеяться над ответом одной из функций службы, которая извлекает данные CSV.Я использую MockK Framework, чтобы высмеивать ответ.Проблема, с которой я сталкиваюсь, заключается в том, что при запуске потока исходная служба вызывается вместо возврата проверенных данных.Ниже приведен фрагмент моего кода для помощи.Модульный тест:
class TestsService {
private lateinit var network: MockNetwork
private lateinit var partyA: StartedMockNode
private lateinit var partyB: StartedMockNode
private lateinit var Oracle: StartedMockNode
@MockK
private lateinit var service: ServiceToBeMocked
@Before
fun setup() {
MockKAnnotations.init(this)
every { service.mockedFunction() } returns mockedResponse //This function mocks response
network = MockNetwork(listOf("service package names."))
partyA = network.createPartyNode(CordaX500Name("abcd","state","country"))
partyB = network.createPartyNode(CordaX500Name("efgh","state","country"))
Oracle = network.createPartyNode(CordaX500Name("jklm","state","country"))
Oracle.registerInitiatedFlow(Flow to register)
}
@Test
fun `Test statement`() {
val expected = linkedMapOf(mockedResponse),
val actual = fetchData()
assertEquals(expected, actual.get(), "Success")
}
private fun fetchData(): Future<Map<Key,Data>> {
val flow = //Flow to start
val future = initiator.startFlow(flow)
network.runNetwork()
return future
}
}
Поток Внутренние вызовы service.mockedFunction ().Но вместо того, чтобы возвращать поддельный ответ для этого вызова, он выполняет оригинальную реализацию, и тестовый пример не проходит.Может ли кто-нибудь помочь здесь.