Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@

Описание.Имя("asserts")
.Версия("1.5.0")
.Версия("1.6.0")
.ВерсияСреды("1.0.21")
.ВключитьФайл("src")
.ВключитьФайл("tests")
.ВключитьФайл("readme.md")
.ОпределяетКласс("БДДАссерт", "src/Классы/БДДАссерт.os")
.ОпределяетКласс("ИсключениеОшибкаУтверждения", "src/Классы/ИсключениеОшибкаУтверждения.os")
.ОпределяетМодуль("Ожидаем", "src/Модули/Ожидаем.os")
.ОпределяетМодуль("Утверждения", "src/Модули/Утверждения.os")
.РазработкаЗависитОт("1bdd")
.РазработкаЗависитОт("1testrunner")
.РазработкаЗависитОт("collectionos")
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Перем Рефлектор;
Перем ИзвестныеТипыКоличество;
Перем КоллекшоносЗагружен;

Функция КоллекшоносЗагружен() Экспорт

Если КоллекшоносЗагружен = Истина Тогда
Возврат Истина;
КонецЕсли;

Рефлектор = Новый Рефлектор();

ИзвестныеТипы = Рефлектор.ИзвестныеТипы();

Если ИзвестныеТипыКоличество = ИзвестныеТипы.Количество() Тогда
Возврат Ложь;
КонецЕсли;

ИзвестныеТипыКоличество = ИзвестныеТипы.Количество();

КоллекшоносЗагружен = ИзвестныеТипы.Найти("Обходимое", "Имя") <> Неопределено;

Возврат КоллекшоносЗагружен;

КонецФункции
300 changes: 194 additions & 106 deletions src/Классы/БДДАссерт.os

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Перем Тип;

Процедура ОбработкаПолученияПредставления(Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Представление = СтрШаблон("{Тип = %1}", Тип);
КонецПроцедуры

Тип = "Ошибка утверждения";
332 changes: 251 additions & 81 deletions src/Модули/Утверждения.os

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion tests/bdd-assertions-identity-tests.os
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@
Ожидаем.Что(ПроверяемоеЗначение).Идентично(ОжидаемоеЗначение);
Исключение
// Ожидаемое поведение - исключение должно быть выброшено при сравнении разных типов
Если СтрНайти(ИнформацияОбОшибке().Описание, "НЕ РАВЕН типу ожидаемого значения") > 0 Тогда
Если СтрНайти(
ИнформацияОбОшибке().Описание,
"Ожидали, что проверяемое значение (тип - Строка) имеет тип (Число).") > 0 Тогда
Возврат;
КонецЕсли;
КонецПопытки;
Expand Down
23 changes: 23 additions & 0 deletions tests/bdd-assertions-tests.os
Original file line number Diff line number Diff line change
Expand Up @@ -278,3 +278,26 @@

Ожидаем.Что(Контекст).Метод("Вставить", Массив).Не_().ВыбрасываетИсключение("Недостаточно фактических параметров");
КонецПроцедуры

&Тест
Процедура ТестДолжен_Проверить_ЧтоНеВыбрасываетсяИсключение() Экспорт

Контекст = Новый Структура;

Попытка

Ожидаем.Что(Контекст)
.Метод("Вставить")
.Не_()
.ВыбрасываетИсключение();

Исключение

ТекстОшибки = ОписаниеОшибки();
Ожидаем.Что(ТекстОшибки)
.Содержит("Ожидали, что Вставить НЕ ВЫБРОСИТ ИСКЛЮЧЕНИЕ")
.Содержит("Недостаточно фактических параметров");

КонецПопытки;

КонецПроцедуры
198 changes: 198 additions & 0 deletions tests/ПроверкаКоллекцийКоллекшонос.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
#Использовать ".."
#Использовать collectionos

&Тест
Процедура ОжидаемСодержитВСписке() Экспорт

// Дано
Список = Новый СписокМассив;
Список.Добавить(1);

// Когда
Ожидаем.Что(Список)
.Содержит(1);

// Тогда

КонецПроцедуры

&Тест
Процедура ОжидаемНеСодержитВСписке() Экспорт

// Дано
БылоИсключение = Ложь;

Список = Новый СписокМассив;
Список.Добавить(2);

// Когда
Попытка
Ожидаем.Что(Список)
.Содержит(1);
Исключение
БылоИсключение = Истина;
ОписаниеОшибки = ОписаниеОшибки();
КонецПопытки;

// Тогда
ПроверитьИсключение(
БылоИсключение,
ОписаниеОшибки,
"Ожидали, что проверяемое значение ([2]) СОДЕРЖИТ (1)"
);

КонецПроцедуры

&Тест
Процедура ОжидаемСодержитВМножестве() Экспорт

// Дано
Множество = Новый МножествоСоответствие;
Множество.Добавить(1);

// Когда
Ожидаем.Что(Множество)
.Содержит(1);

// Тогда

КонецПроцедуры

&Тест
Процедура ОжидаемНеСодержитВМножестве() Экспорт

// Дано
БылоИсключение = Ложь;

Множество = Новый МножествоСоответствие;
Множество.Добавить(2);

// Когда
Попытка
Ожидаем.Что(Множество)
.Содержит(1);
Исключение
БылоИсключение = Истина;
ОписаниеОшибки = ОписаниеОшибки();
КонецПопытки;

// Тогда
ПроверитьИсключение(
БылоИсключение,
ОписаниеОшибки,
"Ожидали, что проверяемое значение ([2]) СОДЕРЖИТ (1)"
);

КонецПроцедуры

&Тест
Процедура ОжидаемСодержитВОчереди() Экспорт

// Дано
Очередь = Новый ОчередьМассив;
Очередь.Добавить(1);

// Когда
Ожидаем.Что(Очередь)
.Содержит(1);

// Тогда

КонецПроцедуры

&Тест
Процедура ОжидаемНеСодержитВОчереди() Экспорт

// Дано
БылоИсключение = Ложь;

Очередь = Новый ОчередьМассив;
Очередь.Добавить(2);

// Когда
Попытка
Ожидаем.Что(Очередь)
.Содержит(1);
Исключение
БылоИсключение = Истина;
ОписаниеОшибки = ОписаниеОшибки();
КонецПопытки;

// Тогда
ПроверитьИсключение(
БылоИсключение,
ОписаниеОшибки,
"Ожидали, что проверяемое значение ([2]) СОДЕРЖИТ (1)"
);

КонецПроцедуры

&Тест
Процедура ОжидаемСодержитВКарте() Экспорт

// Дано
Карта = Новый КартаСоответствие;
Карта.Вставить(1, 1);

// Когда
Ожидаем.Что(Карта)
.Содержит(1);

// Тогда

КонецПроцедуры

&Тест
Процедура ОжидаемНеСодержитВКарте() Экспорт

// Дано
БылоИсключение = Ложь;

Карта = Новый КартаСоответствие;
Карта.Вставить(1, 2);

// Когда
Попытка
Ожидаем.Что(Карта)
.Содержит(1);
Исключение
БылоИсключение = Истина;
ОписаниеОшибки = ОписаниеОшибки();
КонецПопытки;

// Тогда
ПроверитьИсключение(
БылоИсключение,
ОписаниеОшибки,
"Ожидали, что проверяемое значение ({1=2}) СОДЕРЖИТ (1)"
);

КонецПроцедуры

Процедура ПроверитьИсключение(БылоИсключение, ОписаниеОшибки, ИскомыйТекстИсключения)

Контекст = Новый ИсключениеОшибкаУтверждения();

Если Не БылоИсключение Тогда

ВызватьИсключение Новый ИнформацияОбОшибке(
"Ожидали, что будет исключение а это не так",
Контекст
);

КонецЕсли;

Если СтрНайти(ОписаниеОшибки, ИскомыйТекстИсключения) = 0 Тогда

ВызватьИсключение Новый ИнформацияОбОшибке(
СтрШаблон(
"Ожидали, что в тексте ошибки будет текст: { %1 }, а был { %2 }",
ИскомыйТекстИсключения,
ОписаниеОшибки
),
Контекст
);

КонецЕсли;

КонецПроцедуры