Перейти к основному содержимому

Поддерживаемые форматы данных для модульных тестов

В настоящее время фиктивные данные для модульного тестирования в dbt поддерживают три формата:

  • dict (по умолчанию): Встроенные значения словаря.
  • csv: Встроенные значения CSV или CSV-файл.
  • sql: Встроенный SQL-запрос или SQL-файл. Примечание: Для этого формата вы должны предоставить фиктивные данные для всех строк.

dict

Формат данных dict используется по умолчанию, если format не определен.

dict требует встроенный словарь для rows:


unit_tests:
- name: test_my_model
model: my_model
given:
- input: ref('my_model_a')
format: dict
rows:
- {id: 1, name: gerda}
- {id: 2, b: michelle}

csv

При использовании формата csv вы можете использовать либо встроенную строку CSV для rows:


unit_tests:
- name: test_my_model
model: my_model
given:
- input: ref('my_model_a')
format: csv
rows: |
id,name
1,gerda
2,michelle

Или вы можете указать имя CSV-файла в каталоге tests/fixtures (или в настроенном местоположении test-paths) вашего проекта для fixture:


unit_tests:
- name: test_my_model
model: my_model
given:
- input: ref('my_model_a')
format: csv
fixture: my_model_a_fixture

sql

Использование этого формата:

  • Обеспечивает большую гибкость для типов данных, которые вы можете тестировать
  • Позволяет тестировать модель, которая зависит от эфемерной модели

Однако при использовании format: sql вы должны предоставить фиктивные данные для всех строк.

При использовании формата sql вы можете использовать либо встроенный SQL-запрос для rows:


unit_tests:
- name: test_my_model
model: my_model
given:
- input: ref('my_model_a')
format: sql
rows: |
select 1 as id, 'gerda' as name, null as loaded_at union all
select 2 as id, 'michelle', null as loaded_at as name

Или вы можете указать имя SQL-файла в каталоге tests/fixtures (или в настроенном местоположении test-paths) вашего проекта для fixture:


unit_tests:
- name: test_my_model
model: my_model
given:
- input: ref('my_model_a')
format: sql
fixture: my_model_a_fixture

Примечание: Jinja не поддерживается в SQL-фикстурах для модульных тестов.

0