Модульный тестовый пример для последовательностей WSO2

Я пытаюсь написать модульный тест для последовательности, ссылаясь на Блог WSO2, но в сообщении блога есть тестовый пример для Proxy-Service, который не имеет отношения к делу. Есть ли способ написать модульный тест только для последовательности.


person Vishal Jain    schedule 28.07.2020    source источник


Ответы (1)


Надеюсь, вы используете Integration Studio для разработки. Если так, то это будет несложно. Выполните следующие шаги, чтобы проверить последовательность в WSO2 EI.

  1. Создайте последовательность для своего решения с помощью Integration Studio. Здесь я буду использовать следующий образец артефакта. Просто эта последовательность создаст полезную нагрузку JSON внутри посредника.
<sequence name="sample" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <payloadFactory media-type="json">
        <format>{
            "Hello" : "World"
            }
        </format>
        <args/>
    </payloadFactory>
</sequence>
  1. Щелкните последовательность правой кнопкой мыши и выберите Создать ›Пакет модульных тестов, чтобы создать набор модульных тестов для своей последовательности.
  2. Откройте созданный файл набора тестов, расположенный в каталоге test.
  3. Добавьте утверждение в созданный набор тестов следующим образом. Здесь вы можете использовать графический редактор Integration Studio.
<unit-test>
    <artifacts>
        <test-artifact>
            <artifact>/testConfigs/src/main/synapse-config/sequences/sample.xml</artifact>
        </test-artifact>
        <supportive-artifacts/>
        <registry-resources/>
        <connector-resources/>
    </artifacts>
    <test-cases>
        <test-case name="sampleTest">
            <input/>
            <assertions>
                <assertEquals>
                    <actual>$body</actual>
                    <expected><![CDATA[{
                                "Hello" : "World"
                                }]]>
                    </expected>
                    <message>Actual and Expected are not matched</message>
                </assertEquals>
            </assertions>
        </test-case>
    </test-cases>
    <mock-services/>
</unit-test>

  1. Затем щелкните набор тестов правой кнопкой мыши и выберите вариант Выполнить модульный тест.
  2. Выберите вариант локальный или удаленный, чтобы запустить набор тестов. (Для целей тестирования используйте локальную опцию. Integration Studio запустит модульный тест со встроенным сервером WSO2 EI)

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

[INFO] ------------------------------------------------------------------------
[INFO] U N I T - T E S T  R E P O R T
[INFO] ------------------------------------------------------------------------
[INFO] Start Time: 2020-07-29 21:27:47
[INFO] Test Run Duration: 3 seconds
[INFO] Test Summary: 
[INFO] 
[INFO] Test Suite Name: sample.xml
[INFO] ==============================================
[INFO] Pass Test Cases: 1
[INFO] Failure Test Cases: 0
[INFO] 
[INFO] +------------------------+----------------+---------------+---------------+
[INFO] |   TEST CASE            |   DEPLOYMENT   |   MEDIATION   |   ASSERTION   |
[INFO] +========================+================+===============+===============+
[INFO] | Test Case - sampleTest |    PASSED      |    PASSED     |    PASSED     |
[INFO] +------------------------+----------------+---------------+---------------+

Более того, вы можете протестировать выражение assert Synapse, Axis2, Transport, $ body, $ httpVersion, $ statusCode с помощью этой среды тестирования. См. Эту документацию для более подробной информации.

person Sajitha Liyanage    schedule 29.07.2020
comment
У меня была сложная последовательность, которая состояла из нескольких внутренних вызовов API, поэтому мне пришлось создать фиктивный сервис, и введенные здесь данные помогли правильно написать тестовые примеры. - person Vishal Jain; 26.08.2020