Выпуск Wick 0.14: глубокие вызовы и утверждения пакетов

Wick 0.14 привносит в Wick два основных улучшения качества жизни: глубокие вызовы и целый класс новых утверждений для тестовых примеров Wick.

Глубокие призывы

Вы всегда можете использовать wick invoke для конфигурации с одним компонентом.

Но по мере того, как компоненты и их отношения становились все более сложными, стало труднее «просто вызывать» компоненты, которые были глубоко вложены внутри других. Еще сложнее было с компонентами, которые были частью существующей конфигурации приложения.

Теперь wick invoke будет принимать пути к операции и напрямую работать с приложениями.

Правильно, теперь вы можете вызвать любую операцию внутри любого приложения прямо из командной строки. Никакой дополнительной настройки не требуется.

Это означает, что каждая операция в каждом приложении теперь выполняется с помощью утилиты командной строки.

Хотите предоставить функциональность для использования другой командой? Уже сделано.

Необходимо проверить данные в другое время и в других условиях? Используйте само приложение в bash-скрипте.

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

Да, и кстати о тестах…

Утверждения пакетов

Утверждение Уика по умолчанию о строгом равенстве в тестовых случаях хорошо, когда данные предсказуемы и детерминированы, но жизнь не всегда предсказуема и детерминирована.

Худшими нарушителями являются операции HTTP и БД, выходные данные которых часто содержат метки времени, идентификаторы и другие значения, которые трудно предсказать.

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

tests:
  - name: basic_tests
    cases:

      # Old test cases still work

      - name: basic_equality
        operation: echo
        inputs:
          - name: input
            value: 'Hello, world!'
        outputs:
          - name: output
            value: 'Hello, world!'

      # Now you can specify `assertions` for each output packet.

      - name: assertions
        operation: echo
        inputs:
          - name: input
            value:
              string_value: Hello!
              number: 42
        outputs:
          - name: output
            assertions:
              - operator: Contains
                value: { string_value: Hello! }
              - operator: LessThan
                path: number
                value: 100

Примечания к выпуску

Полные примечания к выпуску: https://github.com/candlecorp/wick/releases/tag/0.14.0

Обязательно ознакомьтесь с wick on github, документацией wick на candle.dev и присоединяйтесь к нашему discord-серверу!

Спасибо!