Поток Corda, выполняющий внешний исходный сервис вместо поддельного сервиса для модульного теста - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь написать тестовые случаи для одного из потоков, который вызывает службу оракула, которая затем вызывает простой сервис 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 ().Но вместо того, чтобы возвращать поддельный ответ для этого вызова, он выполняет оригинальную реализацию, и тестовый пример не проходит.Может ли кто-нибудь помочь здесь.

...