/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/fixed-structure.os
182 строки
13 KB
EvilBeaver
closes #1646 Ошибка метода ЗаполнитьЗначенияСвойств на ФиксированнойСтруктуре
11 янв 2026, 12:19
11 янв 2026, 12:19
b4e8fb8
Код
Авторство
О чём код?
#Использовать asserts /////////////////////////////////////////////////////////////////////// // Тест класса ФиксированнаяСтруктура /////////////////////////////////////////////////////////////////////// Перем юТест; //////////////////////////////////////////////////////////////////// // Программный интерфейс Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт юТест = ЮнитТестирование; ВсеТесты = Новый Массив; ВсеТесты.Добавить("ТестДолжен_СоздатьФиксированнуюСтруктуруПоСтруктуре"); ВсеТесты.Добавить("ТестДолжен_СоздатьФиксированнуюСтруктуруПоКлючамЗначениям"); ВсеТесты.Добавить("ТестДолжен_СоздатьФиксированнуюСтруктуруПоКлючамЗначениямСоЗначениямиПоУмолчанию"); ВсеТесты.Добавить("ТестДолжен_ПроверитьТипПараметровКонструктора"); // issue #888 ВсеТесты.Добавить("ТестДолжен_ПроверитьНеизменностьФиксированнойСтруктуры"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоНельзяПоменятьЗначениеПриОбращенииЧерезКлюч"); ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодСвойство"); ВсеТесты.Добавить("ТестДолжен_ПроверитьОтсутствиеМетодаВставить"); ВсеТесты.Добавить("ТестДолжен_СоздатьСтруктуруПоФиксированнойСтруктуре"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЗаполнитьЗначенияСвойствИзФиксированнойСтруктуры"); Возврат ВсеТесты; КонецФункции Процедура ТестДолжен_СоздатьФиксированнуюСтруктуруПоСтруктуре() Экспорт Структура = Новый Структура("Ключ1", "Значение1"); ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура(Структура); Ожидаем.Что(ТипЗнч(ФиксированнаяСтруктура)).Равно(Тип("ФиксированнаяСтруктура")); Ожидаем.Что(ФиксированнаяСтруктура.Количество(), "количество элементов исходной и полученной структуры совпадут").Равно(Структура.Количество()); КонецПроцедуры Процедура ТестДолжен_СоздатьФиксированнуюСтруктуруПоКлючамЗначениям() Экспорт ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура("Ключ1", "Значение1"); Ожидаем.Что(ТипЗнч(ФиксированнаяСтруктура)).Равно(Тип("ФиксированнаяСтруктура")); Ожидаем.Что(ФиксированнаяСтруктура.Количество(), "количество элементов исходной и полученной структуры совпадут").Равно(1); КонецПроцедуры Процедура ТестДолжен_СоздатьФиксированнуюСтруктуруПоКлючамЗначениямСоЗначениямиПоУмолчанию() Экспорт ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура("Ключ1,Ключ2"); Ожидаем.Что(ФиксированнаяСтруктура.Количество()).Равно(2); Ожидаем.Что(ФиксированнаяСтруктура.Ключ1).Равно(Неопределено); Ожидаем.Что(ФиксированнаяСтруктура.Ключ2).Равно(Неопределено); КонецПроцедуры Процедура ТестДолжен_ПроверитьТипПараметровКонструктора() Экспорт ФиксированнаяСтруктура1 = Новый ФиксированнаяСтруктура("Ключ1,Ключ2", "Значение1","Значение2"); БезОшибки = Истина; Попытка ФиксированнаяСтруктура2 = Новый ФиксированнаяСтруктура( ФиксированнаяСтруктура1, "Значение1","Значение2"); Исключение БезОшибки = Ложь; КонецПопытки; если БезОшибки тогда ВызватьИсключение "Недопустимый тип параметра конструктора Структуры: ФиксированнаяСтруктура"; конецесли; БезОшибки = Истина; Попытка ФиксированнаяСтруктура2 = Новый ФиксированнаяСтруктура( 1000, "Значение1","Значение2"); Исключение БезОшибки = Ложь; КонецПопытки; если БезОшибки тогда ВызватьИсключение "Недопустимый тип параметра конструктора Структуры: Число"; конецесли; БезОшибки = Истина; Попытка ФиксированнаяСтруктура2 = Новый ФиксированнаяСтруктура( Неопределено, "Значение1","Значение2"); Исключение БезОшибки = Ложь; КонецПопытки; если БезОшибки тогда ВызватьИсключение "Недопустимый тип параметра конструктора ФиксированнойСтруктуры: Неопределено"; конецесли; КонецПроцедуры Процедура ТестДолжен_ПроверитьНеизменностьФиксированнойСтруктуры() Экспорт Значение = "Значение1"; Структура = Новый Структура("Ключ1", Значение); ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура(Структура); Ожидаем.Что(ФиксированнаяСтруктура.Ключ1, "ФиксированнаяСтруктура.Ключ1 равно Структура.Ключ1").Равно(Структура.Ключ1); Структура.Ключ1 = Значение+1; Ожидаем.Что(ФиксированнаяСтруктура.Ключ1, "ФиксированнаяСтруктура.Ключ1/Значение1 не меняет своего значения после изменения Структура.Ключ1/Значение").Равно(Значение); Значение = "Значение10"; Ожидаем.Что(ФиксированнаяСтруктура.Ключ1, "ФиксированнаяСтруктура.Ключ1/Значение1 не меняет своего значения после изменения исходной переменной").Равно("Значение1"); КонецПроцедуры Процедура ТестДолжен_ПроверитьМетодСвойство() Экспорт Структура = Новый Структура("Ключ1", "Значение1"); ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура(Структура); Ожидаем.Что(ФиксированнаяСтруктура.Свойство("Ключ1"), "проверяем ФиксированнаяСтруктура.Свойство(""Ключ1"")").ЭтоИстина(); Ожидаем.Что(ФиксированнаяСтруктура.Свойство("НесуществующийКлюч"), "проверяем ФиксированнаяСтруктура.Свойство(""Ключ1"")").ЭтоЛожь(); Значение = Неопределено; ФиксированнаяСтруктура.Свойство("Ключ1", Значение); Ожидаем.Что(Значение, "проверяем значение из ФиксированнаяСтруктура.Свойство(""Ключ1"", Значение)").Равно("Значение1"); Значение = Неопределено; ФиксированнаяСтруктура.Свойство("НесуществующийКлюч", Значение); Ожидаем.Что(Значение, "проверяем значение из ФиксированнаяСтруктура.Свойство(""Ключ1"", Значение)").Равно(Неопределено); КонецПроцедуры Процедура ТестДолжен_ПроверитьОтсутствиеМетодаВставить() Экспорт Структура = Новый Структура("Ключ1", "Значение1"); ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура(Структура); Попытка ФиксированнаяСтруктура.Вставить("Ключ2", "Значение2"); Исключение Ожидаем.Что(ФиксированнаяСтруктура.Количество(), "количество элементов фиксированной структуры не меняется").Равно(1); Возврат; КонецПопытки; ВызватьИсключение "У класса ""ФиксированнаяСтруктура"" не должно быть метода ""Вставить"", а он есть"; КонецПроцедуры Процедура ТестДолжен_ПроверитьЧтоНельзяПоменятьЗначениеПриОбращенииЧерезКлюч() Экспорт Значение = "Значение1"; Структура = Новый Структура("Ключ1", Значение); ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура(Структура); Попытка ФиксированнаяСтруктура.Ключ1 = Значение+1; Исключение Ожидаем.Что(ФиксированнаяСтруктура.Ключ1, "ФиксированнаяСтруктура.Ключ1/Значение1 не меняет своего значения после изменения Структура.Ключ1/Значение").Равно(Значение); Возврат; КонецПопытки; ВызватьИсключение "Ожидали, что у класса ""ФиксированнаяСтруктура"" нельзя менять значение через обращение по ключу, а получили, что меняется"; КонецПроцедуры Процедура ТестДолжен_СоздатьСтруктуруПоФиксированнойСтруктуре() Экспорт ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура("Ключ1, Ключ2", "Значение1", "Значение2"); Структура = Новый Структура(ФиксированнаяСтруктура); Ожидаем.Что(ТипЗнч(Структура)).Равно(Тип("Структура")); Ожидаем.Что(Структура.Количество(), "количество элементов исходной и полученной структуры совпадут").Равно(ФиксированнаяСтруктура.Количество()); Ожидаем.Что(Структура.Ключ1, "значения элементов совпадут").Равно(ФиксированнаяСтруктура.Ключ1); Ожидаем.Что(Структура.Ключ2, "значения элементов совпадут").Равно(ФиксированнаяСтруктура.Ключ2); КонецПроцедуры Процедура ТестДолжен_ПроверитьЗаполнитьЗначенияСвойствИзФиксированнойСтруктуры() Экспорт Структура1 = Новый ФиксированнаяСтруктура("тест1,тест2,тест3", "тест", Истина); Структура2 = Новый Структура(Структура1); // Проверяем, что метод ЗаполнитьЗначенияСвойств работает с ФиксированнаяСтруктура ЗаполнитьЗначенияСвойств(Структура2, Структура1); Ожидаем.Что(Структура2.тест1, "значения свойства тест1 совпадут").Равно(Структура1.тест1); Ожидаем.Что(Структура2.тест2, "значения свойства тест2 совпадут").Равно(Структура1.тест2); Ожидаем.Что(Структура2.тест3, "значения свойства тест3 совпадут").Равно(Структура1.тест3); КонецПроцедуры