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

Создание собственных проверок

Это базовые методы проверки, с помощью которых вы можете проверить любое поведение (или почти любое) системы. На их основе вы можете сформировать библиотеку своих "бизнес" утверждений, заточенных под ваше решение, что облегчит вам разработку тестов.

На основе утверждений YAxUnit

На основе утверждений YAxUnit вы можете создавать свои методы проверок, заточенные под специфику вашего решения. Это поможет сделать тесты более читаемыми и поддерживаемыми.

// Пример собственной проверки
Процедура ОжидаетЧтоДокументПроведен(Документ) Экспорт
    
    ЮТест.ОжидаетЧто(Документ)
        .Свойство("Проведен").Равно(Истина)
        .Свойство("ДатаПроведения").Заполнено()
        .Свойство("ПользовательПроведения").Заполнено();
    
КонецПроцедуры

// Использование в тесте
Процедура ТестПроведенияДокумента() Экспорт
    
    Документ = СоздатьДокумент();
    Документ.Записать(РежимЗаписиДокумента.Проведение);
    
    ОжидаетЧтоДокументПроведен(Документ);
    
КонецПроцедуры

Произвольных проверок

В некоторых случаях утверждения YAxUnit могут не подойти, например когда нужно проверить сложную бизнес-логику с условиями "ИЛИ". В таких ситуациях можно использовать ЮТест.Упал для явного падения теста с описанием проблемы:

// Проверка того, что выполнено хотя бы одно из условий (логика "ИЛИ")
Процедура ОжидаетЧтоДокументГотовКУдалению(Документ) Экспорт
    
    Условие1 = НЕ Документ.Проведен; // Не проведен
    Условие2 = Документ.Проведен И Документ.ДатаПроведения < НачалоДня(ТекущаяДатаСеанса()); // Проведен, но давно
    
    Если НЕ (Условие1 ИЛИ Условие2) Тогда
        
        ФактическоеСостояние = СтрШаблон("Проведен: %1, ПомеченНаУдаление: %2, ДатаПроведения: %3",
                                           Документ.Проведен,
                                           Документ.ПомеченНаУдаление,
                                           Формат(Документ.ДатаПроведения, "ДФ=dd.MM.yyyy HH:mm:ss"));
        
        ОжидаемоеСостояние = "Документ должен быть: (не проведен) ИЛИ (проведен давно)";
        
        ЮТест.Упал("Документ не готов к удалению", ФактическоеСостояние, ОжидаемоеСостояние);
        
    КонецЕсли;
    
КонецПроцедуры

В этом примере метод ЮТест.Упал вызывается с фактическим и ожидаемым состояниями документа, что позволяет в отчете увидеть полную картину - какое состояние было получено и какие условия ожидались. Это особенно полезно для проверки сложной бизнес-логики, когда нужно убедиться, что выполнено хотя бы одно из нескольких условий.

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