Skip to content

&Изолированный на параметризованном тесте: все случаи выполняются в одной поделке #34

Description

@sfaqer

Версия: OneUnit 0.5.1.

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

Воспроизведение. tests/Классы/Счетчик.os, желудь-одиночка со счетчиком:

Перем Значение;

&Желудь
Процедура ПриСозданииОбъекта()
	Значение = 0;
КонецПроцедуры

Функция Увеличить() Экспорт
	Значение = Значение + 1;
	Возврат Значение;
КонецФункции

tests/ИзоляцияТестовТест.os:

#Использовать asserts
#Использовать "."

&Пластилин
Перем Поделка;

&Тест
&Изолированный
Процедура ПервыйТестВыполняетсяВСвежейПоделке() Экспорт
	Ожидаем.Что(Поделка.НайтиЖелудь("Счетчик").Увеличить()).Равно(1);
КонецПроцедуры

&Тест
&Изолированный
Процедура ВторойТестВыполняетсяВСвежейПоделке() Экспорт
	Ожидаем.Что(Поделка.НайтиЖелудь("Счетчик").Увеличить()).Равно(1);
КонецПроцедуры

&ПараметризованныйТест
&Изолированный
&ИсточникЗначение(1)
&ИсточникЗначение(2)
Процедура КаждыйСлучайВыполняетсяВСвежейПоделке(НомерСлучая) Экспорт
	Ожидаем.Что(Поделка.НайтиЖелудь("Счетчик").Увеличить()).Равно(1);
КонецПроцедуры
├─ ИзоляцияТестовТест (./tests/ИзоляцияТестовТест.os)
│   ├─ ПервыйТестВыполняетсяВСвежейПоделке ✔
│   ├─ ВторойТестВыполняетсяВСвежейПоделке ✔
│   └─ КаждыйСлучайВыполняетсяВСвежейПоделке
│       ├─ [1] ✔
│       └─ [2] ✘ [Ожидали, что проверяемое значение (2) РАВНО (1).]

По описанию аннотации («на тесте - каждый такой тест своим») ожидалось, что случаи параметризованного теста изолируются так же, как отдельные тесты. Если общая поделка на все случаи задумана, это стоит описать в документации &Изолированный: сейчас случаи приходится развязывать вручную, например разными данными в каждом случае.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions