munit抛出一个特定的例外

时间:2016-07-06 16:07:14

标签: mule anypoint-studio munit

我试图在munit中抛出一个Filter Unaccepted Exception来测试我的错误处理,但是我收到了这个错误

org.mule.api.MessagingException: Failed to invoke throw-an.
at get_data_filter_unaccepted_exception-test.mock:throw-an{doc:name=Throw unaccepted Exception, exception-ref=#[new org.mule.api.routing.filter.FilterUnacceptedException()], whenCalling=.*:.*}(get_data_from_qcfc-test-suite.xml:316)
at appleFlow.munit:test{initialState=started, description=Test, ignore=false, abstract=false, id=MunitTestFlow$$EnhancerByMUNIT$$904837f0{get_data_filter_unaccepted_exception-test}}(get_data_from_qcfc-test-suite.xml:315)
Caused by: org.mule.api.expression.ExpressionRuntimeException: Execution of the expression "new org.mule.api.routing.filter.FilterUnacceptedException()" failed.
    at org.mule.el.mvel.MVELExpressionLanguage.evaluateInternal(MVELExpressionLanguage.java:232)

这是我抛出异常

<mock:when messageProcessor=".*:.*" doc:name="Mock API Token Web Service Call">
        <mock:with-attributes>
            <mock:with-attribute name="doc:name" whereValue="#['Get API Token']"/>
        </mock:with-attributes>
        <mock:then-return payload="#[getResource('api_token_success.xml').asString()]" mimeType="application/xml"/>

    </mock:when>

我认为这是因为我的MEL声明

#[new org.mule.api.routing.filter.FilterUnacceptedException()]

2 个答案:

答案 0 :(得分:2)

你可以使用一个groovy组件来抛出你的异常

<scripting:component doc:name="Throw Exception">
        <scripting:script engine="Groovy"><![CDATA[throw new org.mule.api.routing.filter.FilterUnacceptedException(); ]]></scripting:script>
    </scripting:component>

希望它有所帮助。

/ T

答案 1 :(得分:1)

我没有在您粘贴的代码段中看到throw-an来电。

无论如何,org.mule.api.routing.filter.FilterUnacceptedException的参数构造函数不公开,请尝试使用#[new org.mule.api.routing.filter.FilterUnacceptedException('Some message')]