代码之家  ›  专栏  ›  技术社区  ›  Naveen Rayappa

MUnit测试用例中的Mule请求者

  •  0
  • Naveen Rayappa  · 技术社区  · 7 年前

    我必须在MUnit测试用例中使用Mule请求程序来读取src/test/resources下的文件,以便能够断言有效负载。在当前的实现中,我在MUnits xml中有Ftp连接器,我指的是mule请求者。我清楚地看到,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" />
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   Clinton Murdoch    7 年前

    要在Munit测试中加载文件,您不需要文件连接器,请使用设置负载或设置消息,例如:

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

    getResource内的路径相对于pom文件中指定的testResources(默认为src/test/munit和src/test/resources)。

    文件连接器停止,因为这是Munit测试中连接器的默认行为。有关这方面的更多信息,请访问Mulesoft论坛: https://forums.mulesoft.com/questions/44649/munit-config-mock-inbounds-mock-connectors.html

        2
  •  0
  •   Swetha Ranga    7 年前

    尝试模拟组件,而不是调用它。如果模拟,则可以避免此错误,因为FTP需要启动,这在munit中是不可能的。