Запросчик мула в тестовом случае MUnit

Мне нужно использовать тестовый пример Mule Requester Inside MUnit, чтобы прочитать файл в src / test / resources, чтобы я мог подтвердить полезную нагрузку. С текущей реализацией у меня есть Ftp-коннектор внутри MUnits xml, о котором я говорю из запрашивающего мула. Я ясно вижу, что запросчик mule пытается получить доступ к соединителю еще до его инициализации. Есть ли способ сказать mule о ранней инициализации ftp-коннектора?

Исключение :

    ********************************************************************************
 Message               : Cannot perform an action on a connector when it is not started. Connector "no-delete-file-connector-test" is currently in lifecycle phase "initialise"
 Element               : /no-delete-file-connector-test @ app:haz001-test-suite.xml:33 (File)
 --------------------------------------------------------------------------------
 Exception stack is:
 Cannot perform an action on a connector when it is not started. Connector "no-delete-file-connector-test" is currently in lifecycle phase "initialise" (org.mule.api.lifecycle.LifecycleException)
   org.mule.transport.AbstractConnector.getRequester(AbstractConnector.java:1178)
   org.mule.transport.AbstractConnector.request(AbstractConnector.java:2269)
   org.mule.transport.file.FileConnector$$EnhancerByCGLIB$$d6c65eff.CGLIB$request$75(<generated>:-1)
   (97 more...)

   (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
 ********************************************************************************

Вот моя конфигурация:

<flow-ref name="processMainFlow" doc:name="processMainFlow" />
  <mulerequester:request resource="file://src/test/resources/expected-discrete.csv?connector=no-delete-file-connector-test" doc:name="Mule Requester" returnClass="java.lang.String"/>
<munit:assert-payload-equals expectedValue="#[flowVars.outputCSV]" doc:name="Assert Payload"/>
 <logger message="response for test #[payload] actual data : #[flowVars.outputCSV]" level="INFO"
     doc:name="Logger" />

person Naveen Rayappa    schedule 15.11.2017    source источник


Ответы (2)


Чтобы загрузить файл в тест Munit, вам не нужен файловый коннектор, используйте Set Payload или Set Message, например:

<set-payload value="#[getResource('expected-discrete.csv').asStream()]" doc:name="Set Payload"/>

Путь внутри getResource относится к testResources, указанным в вашем файле pom (по умолчанию src / test / munit и src / test / resources).

Файловый коннектор остановлен, потому что это поведение коннекторов по умолчанию в тестах Munit. Дополнительную информацию об этом можно найти на форумах Mulesoft: https://forums.mulesoft.com/questions/44649/munit-config-mock-inbounds-mock-connectors.html

person Clinton Murdoch    schedule 20.11.2017

Попробуйте поиздеваться над компонентом вместо того, чтобы вызывать его. Если его высмеять, можно избежать этой ошибки, поскольку FTP требует инициации, что невозможно в munit.

person Swetha Ranga    schedule 20.11.2017