Настройка входящих свойств для справки по потоку MUnit в Mulesoft для APIKit

Я пытаюсь протестировать APIKit в MUnit. Первоначально я использовал http-запрос в MUnit для вызова моего потока, а затем APIKit перенаправлял запрос в соответствующий подпоток, в котором живет моя логика. Теперь я хочу имитировать один из элементов подпотока, поэтому я пытаюсь заменить http-запрос ссылкой на поток APIKit. Это работает, но роутер APIKit выдает ошибку:

Cannot resolve request base path

Потому что ни одно из входящих свойств не задано. И это моя проблема, как мне имитировать входящие свойства, которые я отправляю в ссылку на поток, чтобы запрос выглядел так, как будто он пришел из HTTP-запроса? В качестве альтернативы, есть ли другой способ структурировать код, чтобы я мог имитировать элемент моей логики?

Спасибо


person CamJohnson26    schedule 18.05.2016    source источник


Ответы (2)


Вы можете добавить свойства в свой фиктивный HTTP-ответ. См. Образец ниже:

<mock:when messageProcessor=".*:.*" doc:name="Queue Message">
            <mock:with-attributes>
                <mock:with-attribute name="doc:name" whereValue="#['Queue Message']"/>
            </mock:with-attributes>
            <mock:then-return payload="#['Sample response']">
                <mock:inbound-properties>
                    <mock:inbound-property key="prop1" value="val1"/>
                    <mock:inbound-property key="prop2" value="val2"/>
                </mock:inbound-properties>
            </mock:then-return>
        </mock:when>

Надеюсь это поможет

person Arden Vallente    schedule 19.05.2016
comment
Спасибо, да, это то, чем я закончил. - person CamJohnson26; 19.05.2016

Вы можете использовать обработчик сообщений set перед ссылкой на поток, чтобы установить полезную нагрузку и свойства. Пожалуйста, обратитесь к следующему коду

    <munit:before-suite name="twitter_munit_testBefore_Suite" description="MUnit Test">
        <scripting:component doc:name="Script">
            <scripting:script name="groovyScriptPayloadGenerator" engine="Groovy"><![CDATA[ 
        import groovy.json.JsonSlurper
        def jsonSlurper = new JsonSlurper()
        def object = jsonSlurper.parseText '''
                        { "positive": 15,
                          "negative": 5,
                          "neutral": 0
                        }''']]></scripting:script>
        </scripting:component>
    </munit:before-suite>

    <munit:test name="new-test-suite-tetsFlowTest" description="Test">
        <munit:set payload="#[resultOfScript('groovyScriptPayloadGenerator')]" doc:name="Set Message">
            <munit:inbound-properties>
                <munit:inbound-property key="http.query.params" value="#[['query':'value']]"/>
            </munit:inbound-properties>
        </munit:set>
        <flow-ref name="tetsFlow" doc:name="Flow-ref to tetsFlow"/>
    </munit:test>

Также проверьте это для получения дополнительных сведений. Таким же образом вы также можете настроить макет. Надеюсь это поможет..

person AnupamBhusari    schedule 19.05.2016