Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Для затравки. Юниттестирование на восьмерке. Очень сырой драфт. (число прочтений - 60233 )
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
24. Февраля 2010 :: 13:00
Печать  
В папке Modules лежит текст общего модуля, который нужно добавить в конфигурацию. Имя - Я_Тест.
В корне лежит обработка, с помощью которой нужно запускать тесты.
При запуске этой обработке ей нужно указать каталог, где лежат тесты (например Tests из архива). Обработка рекурсивно просмотрит эту папочку и все найденные тесты добавит в дерево. Ну и дальше их можно будет выполнить.
В папочке Tests лежит единственная обработка с тестами-примерами.
  

0_021.7z ( 11 KB | Загрузки )
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #1 - 25. Февраля 2010 :: 09:19
Печать  
Как обычно, всем http://lurkmore.ru/Все_равно Улыбка
  
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #2 - 25. Февраля 2010 :: 10:51
Печать  
Ну, видимо, твоему основному, из местных, соратнику по тестированию, Артуру, сейчас не до пустяков  Улыбка
  

1&&2&&3
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #3 - 25. Февраля 2010 :: 13:04
Печать  
Действительно дельные вещи должны "вылежаться" прежде чем обресть признание Улыбка
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #4 - 25. Февраля 2010 :: 19:18
Печать  
fez писал(а) 25. Февраля 2010 :: 09:19:
Как обычно, всем http://lurkmore.ru/Все_равно Улыбка


не согласен На все равно - я добавил модуль себе в отдельную Подсистему тестирования,

даже добавил ЗапускТестов в конфу предварительно не запустив
однако Обработка ориентирована именно на запуск как внешняя - пришлось удалить Подмигивание и запустить уже как файл

вообще прикольно получилось - тут же закрыл Экспортные методы своих общих модулей.
и еще что-то по мелочи - типа проверку ИНН на контрольные цифры.





  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #5 - 25. Февраля 2010 :: 19:44
Печать  
lustin писал(а) 25. Февраля 2010 :: 19:18:
однако Обработка ориентирована именно на запуск как внешняя - пришлось удалить Подмигивание и запустить уже как файл
Ну это ей не критично. Если придумать, какой каталог показать в самом начале - то можно и отвязать ее от внешности. Есть какие-нибудь разумные идеи? Каталога БД теперь ведь нету Подмигивание

lustin писал(а) 25. Февраля 2010 :: 19:18:
вообще прикольно получилось - тут же закрыл Экспортные методы своих общих модулей.

Сначала подумал, что "закрыл" = "убрал экспорт" Улыбка

lustin писал(а) 25. Февраля 2010 :: 19:18:
и еще что-то по мелочи - типа проверку ИНН на контрольные цифры.

О. Поделись.

P.S. На старой работе около ста тестов, которые проверяют корректность номера ГТД Улыбка
  
Наверх
www  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #6 - 26. Февраля 2010 :: 11:54
Печать  
если сами функции по проверке ИНН то собственно вот они

Код
Выбрать все
Функция ПолучитьМассивЧиселИзСимволовСтроки(строкаСимволов)
	длинаМассива = СтрДлина(строкаСимволов);
	массивЭлементовСтроки = Новый Массив(длинаМассива);
	Для счЭлементов = 0 по длинаМассива-1 Цикл
		анализируемыйСимвол = Сред(строкаСимволов,счЭлементов+1,1);
		массивЭлементовСтроки[счЭлементов] =
                     Число(?(ПустаяСтрока(СокрЛП(анализируемыйСимвол)),"0",анализируемыйСимвол ) );
	КонецЦикла;
	Возврат массивЭлементовСтроки;
КонецФункции


Функция ИННКорректен(строкаИНН, СтрокаПроверки = "")
		мци = ПолучитьМассивЧиселИзСимволовСтроки(строкаИНН);
		///мци = массивЦифрИНН; //для удобства чтения кода - кажется я загнался ;-)
		    //  массивЦифрИНН = ""; //чтобы не было циклической ссылки
		Если мци.Количество() = 10 Тогда
	    	контрольнаяЦифра =
				 (2*мци[0]+4*мци[1]+10*мци[2]+3*мци[3]+5*мци[4]+9*мци[5]+4*мци[6]+6*мци[7]+8*мци[8])%11;
      		контрольнаяЦифра = ?(контрольнаяЦифра = 10,0,контрольнаяЦифра);
	        Если контрольнаяЦифра = мци[9] Тогда
            	Возврат Истина;
			Иначе
				СтрокаПроверки = "Контрольные цифры ИНН неверны - такого ИНН не может быть согласно Законодательства РФ";
				Возврат Ложь;
			КонецЕсли;
		ИначеЕсли  мци.Количество() = 12 Тогда

       		контрольнаяЦифра =
				(7*мци[0]+2*мци[1]+4*мци[2]+10*мци[3]+3*мци[4]+5*мци[5]+9*мци[6]+4*мци[7]+6*мци[8]+8*мци[9])%11;
	        контрольнаяЦифра = ?(контрольнаяЦифра = 10,0,контрольнаяЦифра);

    	        контрольнаяЦифра2 = (3*мци[0]+7*мци[1]+2*мци[2]+4*мци[3]+10*мци[4]+3*мци[5]+5*мци[6]+9*мци[7]+4*мци[8]+6*мци[9]+8*мци[10])%11;
        	контрольнаяЦифра2 = ?(контрольнаяЦифра2 = 10,0,контрольнаяЦифра2);

        	Если контрольнаяЦифра = мци[10] И контрольнаяЦифра2 =мци[11] Тогда
            	Возврат Истина;
			Иначе
				СтрокаПроверки = "<p>Контрольные цифры ИНН неверны - такого ИНН не может быть согласно Законодательства РФ</p>";
				Возврат Ложь;
			КонецЕсли;
 		Иначе
		    СтрокаПроверки = "<p>Длина введенного ИНН неверна - необходимо указать ИНН состоящий из 10 или 12 цифр </p>";
    		Возврат Ложь;
		КонецЕСли;
    КонецЕсли;

КонецФункции

 



формат строки ошибки HTML текст

соответственно через ПроверитьЛожь() и Проверить() я и сделал проверки ИНН - пока написал массив из 30 гарантированно неправильных и 30 гарантированно правильных.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #7 - 26. Февраля 2010 :: 12:01
Печать  
lustin писал(а) 26. Февраля 2010 :: 11:54:
Код
Выбрать все
                массивЦифрИНН = ""; //чтобы не было циклической ссылки
		Если массивЦифрИНН.Количество() = 10 Тогда
 



Я извиняюсь, а как это работает?
  
Наверх
www  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #8 - 26. Февраля 2010 :: 12:06
Печать  
fez писал(а) 26. Февраля 2010 :: 12:01:
lustin писал(а) 26. Февраля 2010 :: 11:54:
Код
Выбрать все
                массивЦифрИНН = ""; //чтобы не было циклической ссылки
		Если массивЦифрИНН.Количество() = 10 Тогда
 



Я извиняюсь, а как это работает?


тьфу ты, это я руками Федор уже на форуме вставил без проверки.

я когда скопипастил увидел что
Код
Выбрать все
 массивЦифрИНН = ПолучитьМассивЧиселИзСимволовСтроки(строкаИНН);
 мци = массивЦифрИНН; //для удобства чтения кода
 



как то подозрительно на утечку тянет
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #9 - 26. Февраля 2010 :: 12:10
Печать  
Тогда почему сразу не
мци = ПолучитьМассивЧиселИзСимволовСтроки(строкаИНН);
? Подмигивание
  
Наверх
www  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #10 - 26. Февраля 2010 :: 12:12
Печать  
fez писал(а) 26. Февраля 2010 :: 12:10:
Тогда почему сразу не
мци = ПолучитьМассивЧиселИзСимволовСтроки(строкаИНН);
? Подмигивание

я поправил верхний текст... Смущённый

я когда писал, написал переменную полностью, потом посмотрел что массивЧиселСтрок слишком длинно - изменил присвоением, недавно почитал комментарии steban'а об утечках на Инфостарте, и сейчас увидел - и еще одну строку добавил прямо на форуме

кажется я загнался  Язык
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #11 - 26. Февраля 2010 :: 13:06
Печать  
Действительно, пока что некогда в детали вдаваться
Работу Федора по-быстрому посмотрел, сделано хорошо Улыбка
но нужно развивать - пока только внешние обработки, а где отчеты, другие метаданные? нет возможности задания произвольных юнит-тестов в виде кусков кода

По ИНН - вижу сразу недочеты кода Улыбка
нет проверки на пустую строку ИНН Улыбка - я не знаю, как 1С8 отреагирует на код Новый Массив(0) Печаль
нет проверки на правильность типов параметра и т.п.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #12 - 26. Февраля 2010 :: 13:55
Печать  
artbear писал(а) 26. Февраля 2010 :: 13:06:
нет проверки на пустую строку ИНН Улыбка - я не знаю, как 1С8 отреагирует на код Новый Массив(0) Печаль


и тут же родился тест
Цитата:
Я_Тест.ПроверитьЛожь(ИННКорректен(""),"ошибка проверки корректности пустой строки ИНН");


и он не прошел  Улыбка (недопустимое значение параметра Массив(0))


  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #13 - 26. Февраля 2010 :: 14:17
Печать  
artbear писал(а) 26. Февраля 2010 :: 13:06:
пока только внешние обработки [...] нет возможности задания произвольных юнит-тестов в виде кусков кода

Постой-ка, а что тебе мешает во внешней обработке написать юнит-тест в виде куска кода? Собственно, я именно для этого это все и написал.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #14 - 01. Марта 2010 :: 15:56
Печать  
lustin писал(а) 26. Февраля 2010 :: 13:55:
и тут же родился тест

и он не прошел  Улыбка (недопустимое значение параметра Массив(0))

Общий коммент по написанию тестов
1. твой тест должен был сразу родиться Улыбка - у меня, как я писал, сразу Улыбка
2. он должен быть родиться еще до твоего кода Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #15 - 01. Марта 2010 :: 16:00
Печать  
fez писал(а) 26. Февраля 2010 :: 14:17:
artbear писал(а) 26. Февраля 2010 :: 13:06:
пока только внешние обработки [...] нет возможности задания произвольных юнит-тестов в виде кусков кода

Постой-ка, а что тебе мешает во внешней обработке написать юнит-тест в виде куска кода? Собственно, я именно для этого это все и написал.

В обработку не всегда удобно засовывать.
Например, есть куча несвязанных между собой тестов.
1. не хочется ради одного-двух тестов заводить обработку
2. и не хочется разные тесты кидать в одну обработку - типа делать одно глобальное сборище.

Я пока изучаю следующий вариант по простому созданию тестов
Написал в блоге на ИС http://infostart.ru/public/15492/blog/post/957/
с помощью данной консоли есть возможность задания набора произвольных параметров, алгоритмов, запросов.
я легко добавил возможность юнит-тестирования + возможность тестирования группы тестов.
Если нужно, могу выложить доработанную обработку.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #16 - 04. Марта 2010 :: 14:01
Печать  
Метод Я_Тест._GetPerformanceCounter() ИМХО очень тормозной.
1. Нужно сделать какой-нибудь метод типа
InitPerformanceCounter(), который создает КОМ-объект и возвращает его.
а к методу _GetPerformanceCounter() добавить параметр, в которой пользователи метода будут передавать ранее созданный КОМ-объект
2. Название метода также очень корявое Печаль
зачем нам идти на поводу у 77 Улыбка
Давай лучше название типа ПолучитьТекущееВремяКакЧисло()
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #17 - 04. Марта 2010 :: 19:26
Печать  
Еще замечания Улыбка
1. Лишний вывод в окно сообщений о количестве тестов, эта инфа прекрасно видна в окне формы браузера.
2. В табличный док выводится инфа об ошибке теста по 2 раза, неудобно Печаль
3. Хотелка - для группы тестов было бы удобно выводить количество тестов в группе.

В принципе, все сделать несложно, я уже почти все и сделал.
Будем переходить к групповой разработке?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #18 - 04. Марта 2010 :: 23:17
Печать  
artbear писал(а) 04. Марта 2010 :: 14:01:
Метод Я_Тест._GetPerformanceCounter() ИМХО очень тормозной.


переделал у себя на вызов метода  _Система.МиллисекундСоСтарта(); из http://infostart.ru/public/15589/

тестировал конструкторы/копирование/получениеИзСтроковогоПредставления в первом приближении (в качестве эксперимента)

оказалось замер времени быстрее все таки из компоненты
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #19 - 06. Марта 2010 :: 11:08
Печать  
Есть у кого-нибудь код по анализу и выполнения тестов для пользователя с ограниченными правами ?

Например, мне нужно проверить работу пользователя, у которого часть прав урезана.
Т.е. тут нужно запустить 1С для данного пользователя, или через Внешнее соединение, или через КОМ-объект,
далее нужно запустить обработку тестирования для данного пользователя и выполнить необходимые тесты, получить результаты и вернуть их в текущую обработку тестирования.

Занимался ли кто-нибудь подобным?

Федор, тебе наверняка придется тестировать подобные задачи.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #20 - 07. Марта 2010 :: 15:00
Печать  
1. При сканировании папки, в которой есть обработка с синтакс-ошибкой в модуле обработки, будет выдана ошибка.
Например, выбираем папку с обработками для чужой конфы с вызовом несуществующих в данной конфе глобальных модулей.
Хуже всего, если это происходит при запуске браузера юнит-тестов и открытии автосохраненного каталога. В этом случае браузер просто невозможно открыть штатным способом.
Исправление - в начале метода ДобавитьТестыОбработки создание обработки включить в блок Попытка-Исключение

2. Также длительные циклы с использованием рекурсии и циклы чтения файлов/папок желательно дополнить ОбработкаПрерыванияПользователя();
для удобства работы
« Последняя редакция: 07. Марта 2010 :: 17:34 - artbear »  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #21 - 07. Марта 2010 :: 17:31
Печать  
Федор, ИМХО твоя реализация утверждений не очень удобна Печаль
Я говорю о сообщении об ошибках в утверждениях.
У меня уже более 2-х лет при разработке используется собственный код утверждений
Код типа
Цитата:
Процедура ПроверитьЗаполненность(проверяемоеЗначение, СообщениеОбОшибке = "") Экспорт
     Попытка
           фЗаполнено = ЗначениеЗаполнено(проверяемоеЗначение);
     Исключение
         Если проверяемоеЗначение = Неопределено Тогда
                 ВызватьИсключение "Значение не заполнено, а ожидалось заполненность"+
                       Символы.ПС+"ОШИБКА: "+СообщениеОбОшибке;
           КонецЕсли;
           Возврат;
     КонецПопытки;
     Если НЕ фЗаполнено Тогда
           ВызватьИсключение "Значение не заполнено, а ожидалось заполненность"+
                       Символы.ПС+"ОШИБКА: "+СообщениеОбОшибке;
     КонецЕсли;
КонецПроцедуры

Т.е. сообщения об ошибках показываются дополнительно к ошибке, нарушаещей утверждения.
Это очень при использовании утверждений в разработке, а не только в тестировании.

2. И Кстати, у тебя не хватает полезных функций ПроверитьЗаполненность, ПроверитьНезаполненность, ПроверитьТип Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #22 - 10. Марта 2010 :: 14:29
Печать  
Народ, какие тесты еще придумали?

Лично я сделал юнит-тесты для системы RLS для типовых конфигураций - там, где ограничения для организаций, внешних обработок и т.п. - БП, ЗУП, КА.

на базе типового ограничения прав я добавляю собственные ограничения прав - например, по контрагентам, офисам и т.д.
т.к. добавлять соответствующие, но различные объекты/реквизиты, нужно в довольно многих местах конфигурации, все время идет путаница.
Мои юнит-тесты помогают решить эту проблему Улыбка
Эти тесты разделены на 2 вида -
1. один универсальный блок тестов проверяет только правильность доработки конфигурации под типовую структуру ограничения прав. Этот блок универсален для любой типовой конфы
2. а второй блок уже включает в себя тесты для конкретных ограничений - например, по контрагентам, организациям, обработкам и т.п.
Этот блок нужно дописывать под каждую конфу отдельно.
Хотя несложно сделать копию существующих тестов и поправить под свои ограничения.

Могу выложить, если кому интересно - выложено в следующих постах

ЗЫ юнит-тесты специально сделаны/переделаны из существующих под сабжевую разработку Федора.
« Последняя редакция: 11. Марта 2010 :: 09:22 - artbear »  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #23 - 11. Марта 2010 :: 07:05
Печать  
artbear писал(а) 10. Марта 2010 :: 14:29:
Народ, какие тесты еще придумали?
Могу выложить, если кому интересно.


мне интересно, еще и с другой точки зрения, помимо чисто практических проверок на своих типовых.

хочется посмотреть на саму методику написания тестов под 8-ку на "сабжевом" механизме. А то есть у меня чувство что я что-то как-то делаю не так. Подмигивание

а вообще сейчас стоит задача такая хитрая задач:
* есть документы совершающие движения
* вендор конфигурации (Инталев который) выпускает новый релиз без обратной совместимости - те же движения делает уже новый вид документа.
* штатного конвертера нету - к вопросу об 1С:Совместимо который эта конфа имеет вроде.

необходимо: накрыть движения старых документов тестами, обновиться, конвертировать старые документы в новые, сравнить движения. А также нужно написать тесты на вызовы общих модулей автором которых является Инталев, а использовал я чтобы не отвалились предыдущие наработки (Кстати это очередное подтверждение того что вначале надо писать тесты, а потом функционал)

З.Ы. оповещения о новых ответах перестали почему-то приходить на почту
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #24 - 11. Марта 2010 :: 09:22
Печать  
Вот мои тесты системы ограничения прав в типовых конфах 1С - ЮнитТесты_СистемыНастройкиПравДоступа.zip
Тесты адаптированы для сабжевой разработки.
Нужно только одно дополнение:
в общий модуль Я_Тест нужно добавить две процедуры

Цитата:
Процедура ПроверитьЗаполненность(проверяемоеЗначение, СообщениеОбОшибке = "") Экспорт
     //Если НЕ ТестированиеВключено() Тогда
     //      Возврат;
     //КонецЕсли;
     Попытка
           фЗаполнено = ЗначениеЗаполнено(проверяемоеЗначение);
     Исключение
         Если проверяемоеЗначение = Неопределено Тогда
                 ВызватьИсключение "Значение не заполнено, а ожидалось заполненность"+
                       Символы.ПС+"ОШИБКА: "+СообщениеОбОшибке;
           КонецЕсли;
           Возврат;
     КонецПопытки;
     Если НЕ фЗаполнено Тогда
           ВызватьИсключение "Значение не заполнено, а ожидалось заполненность"+
                       Символы.ПС+"ОШИБКА: "+СообщениеОбОшибке;
     КонецЕсли;
КонецПроцедуры

Процедура ПроверитьНеЗаполненность(проверяемоеЗначение, СообщениеОбОшибке = "") Экспорт
     //Если НЕ ТестированиеВключено() Тогда
     //      Возврат;
     //КонецЕсли;
     Попытка
           фЗаполнено = ЗначениеЗаполнено(проверяемоеЗначение);
     Исключение
         Если проверяемоеЗначение <> Неопределено Тогда
                 ВызватьИсключение "Значение заполнено, а ожидалось незаполненность"+
                       Символы.ПС+"ОШИБКА: "+СообщениеОбОшибке;
           КонецЕсли;
           Возврат;
     КонецПопытки;
     Если фЗаполнено Тогда
           ВызватьИсключение "Значение заполнено, а ожидалось незаполненность"+
                       Символы.ПС+"ОШИБКА: "+СообщениеОбОшибке;
     КонецЕсли;
КонецПроцедуры
  

_____________________________________.zip ( 3 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #25 - 11. Марта 2010 :: 11:20
Печать  
lustin писал(а) 11. Марта 2010 :: 07:05:
а вообще сейчас стоит задача такая хитрая задач:

необходимо: накрыть движения старых документов тестами, обновиться, конвертировать старые документы в новые, сравнить движения. А также нужно написать тесты на вызовы общих модулей автором которых является Инталев, а использовал я чтобы не отвалились предыдущие наработки (Кстати это очередное подтверждение того что вначале надо писать тесты, а потом функционал)

На текущую базу трудно сделать общие тесты.
Лучше юзать юнит-тесты при разработке или TDD в чистом виде.
Например, пишешь код по переносу данных, и сразу проверяешь утверждения на правильность кода.

Я на днях для проверки своей же техники работы в TDD сделал одну разработку с использованием чистой техники TDD - перенос некоторых данных по определенным правилам из текстового файла в регистр сведений.
16 юнит-тестов.

Ну и вышеописанную разработку по настройке прав доступа также выполнял полностью на TDD.

Я обычно проблему переноса решаю так:
1. спец.запросами запоминаю общие сводные данные по ключевым показателям и данным.
2. пишу код по переносу данных
3. далее получаю данные, аналогичные п.1
4. выполняю сверку данных из п.1 и п.4
в начале работы в процессе сверки, как правило, получаю некие различия, по этим различиям добавляю отдельные юнит-тесты + дорабатываю запросы из п.1 и снова в п.2

lustin писал(а) 11. Марта 2010 :: 07:05:
З.Ы. оповещения о новых ответах перестали почему-то приходить на почту

У меня, в принципе, сообщения приходят вроде по многим веткам.
Правда, не уверен, что по всем подписанным темам Улыбка
На эту ветку также оповещения приходят.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #26 - 11. Марта 2010 :: 11:48
Печать  
artbear писал(а) 11. Марта 2010 :: 11:20:
Я на днях для проверки своей же техники работы в TDD сделал одну разработку с использованием чистой техники TDD


TDD - это видимо Разработка_через_тестирование

тогда потрачу я остаток сегодняшнего дня на эксперименты с этой методикой.

  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #27 - 11. Марта 2010 :: 12:44
Печать  
artbear писал(а) 11. Марта 2010 :: 09:22:
Вот мои тесты системы ограничения прав в типовых конфах 1С - ЮнитТесты_СистемыНастройкиПравДоступа.zip


у меня не прошел последний тест
Цитата:
ступа.epf
Проверить_ОткрытиеОбработкиНастройкиПрав

{ОбщийМодуль.Я_Тест(25)}: Не удалось открыть форму обработки <Настройка прав доступа>

ОбщийМодуль.Я_Тест
           ВызватьИсключение(_СообщениеОшибки);
25
Не удалось открыть форму обработки <Настройка прав доступа>
"{ОбщийМодуль.Я_Тест(25)}: Не удалось открыть форму обработки <Настройка прав доступа>
           ВызватьИсключение(_СообщениеОшибки);"
=======================================


так как для разработчика у меня было выставлено
Цитата:
ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ

и открывается форма Предупреждения без таймаута  Улыбка
хм, вот теперь в пору задуматься это ИнтелЁвцы или 1С
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #28 - 11. Марта 2010 :: 13:07
Печать  
artbear писал(а) 06. Марта 2010 :: 11:08:
Есть у кого-нибудь код по анализу и выполнения тестов для пользователя с ограниченными правами ?

Например, мне нужно проверить работу пользователя, у которого часть прав урезана.
Т.е. тут нужно запустить 1С для данного пользователя, или через Внешнее соединение, или через КОМ-объект,
далее нужно запустить обработку тестирования для данного пользователя и выполнить необходимые тесты, получить результаты и вернуть их в текущую обработку тестирования.

Занимался ли кто-нибудь подобным?

Федор, тебе наверняка придется тестировать подобные задачи.


Придется. Думаю, что я просто напишу некоторую дополнительную обертку над тестами. Которая будет знать, какой пользователь с каким паролем и какими правами должен запускать какие тесты. Запускать их, забирать результат тестирования для каждого и объединять их в итоговый отчет. А уж внешнее это будет, КОМ или там еще что - пока не знаю. Это, в принципе, малозначительные детали.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #29 - 11. Марта 2010 :: 13:27
Печать  
lustin писал(а) 11. Марта 2010 :: 12:44:
artbear писал(а) 11. Марта 2010 :: 09:22:
Вот мои тесты системы ограничения прав в типовых конфах 1С - ЮнитТесты_СистемыНастройкиПравДоступа.zip


у меня не прошел последний тест
Цитата:
ступа.epf
Проверить_ОткрытиеОбработкиНастройкиПрав

{ОбщийМодуль.Я_Тест(25)}: Не удалось открыть форму обработки <Настройка прав доступа>
=======================================


так как для разработчика у меня было выставлено
Цитата:
ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ

и открывается форма Предупреждения без таймаута  Улыбка
хм, вот теперь в пору задуматься это ИнтелЁвцы или 1С

Ага, нужно новый тест добавить Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #30 - 11. Марта 2010 :: 13:32
Печать  
lustin писал(а) 11. Марта 2010 :: 12:44:
так как для разработчика у меня было выставлено
Цитата:
ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ

и открывается форма Предупреждения без таймаута  Улыбка
хм, вот теперь в пору задуматься это ИнтелЁвцы или 1С

Ошибка выдается типовым кодом 1С. ИМХО это не очень неверно - у администратора прав, как правило, нет ограничения прав.

В своих доработках обработки я этот код убрал, закомментив.
Все равно при добавлении собственных объектов/метаданных для ограничения прав без доработки данной обработки не обойтись.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #31 - 11. Марта 2010 :: 13:35
Печать  
fez писал(а) 11. Марта 2010 :: 13:07:
artbear писал(а) 06. Марта 2010 :: 11:08:
Есть у кого-нибудь код по анализу и выполнения тестов для пользователя с ограниченными правами ?


Думаю, что я просто напишу некоторую дополнительную обертку над тестами. Которая будет знать, какой пользователь с каким паролем и какими правами должен запускать какие тесты. Запускать их, забирать результат тестирования для каждого и объединять их в итоговый отчет. А уж внешнее это будет, КОМ или там еще что - пока не знаю. Это, в принципе, малозначительные детали.

Интересно, в каком виде ты это видишь?
Дополнительно к созданию набора тестов нужно будет еще как-то указать данные пользователя?
Меня эта задача сейчас сильно занимает, т.к. как раз настраиваю систему ограничения прав.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #32 - 12. Марта 2010 :: 10:44
Печать  
набросал в первом приближении еще один тест для модуля Я_Тест

Код
Выбрать все
Процедура ПроверитьМетодВыполнилсяСПараметрами(Объект, ИмяМетода,
		_П1 = "efee3e57-d7d7-447f-bf7c-c7aa924956de", _П2 = "efee3e57-d7d7-447f-bf7c-c7aa924956de", _П3 = "efee3e57-d7d7-447f-bf7c-c7aa924956de",
		_П4 = "efee3e57-d7d7-447f-bf7c-c7aa924956de", _П5 = "efee3e57-d7d7-447f-bf7c-c7aa924956de", _П6 = "efee3e57-d7d7-447f-bf7c-c7aa924956de",
		_П7 = "efee3e57-d7d7-447f-bf7c-c7aa924956de", _П8 = "efee3e57-d7d7-447f-bf7c-c7aa924956de",_П9 = "efee3e57-d7d7-447f-bf7c-c7aa924956de",
		_П10 = "efee3e57-d7d7-447f-bf7c-c7aa924956de") Экспорт
	_пусто = "efee3e57-d7d7-447f-bf7c-c7aa924956de"; //такого значения не может быть передано IMHO

	строкаПараметров = ""+?(_П1 <> _пусто,"_П1,","")  +?(_П2 <> _пусто," _П2,","")
		 +?(_П3 <> _пусто," _П3,","") +?(_П4 <>_пусто," _П4,","")
		 +?(_П5 <>_пусто," _П5,","") +?(_П6 <>_пусто," _П6,","")
		 +?(_П7 <>_пусто," _П7,","") +?(_П8 <>_пусто," _П8,","")
		 +?(_П9 <>_пусто," _П9,","") +?(_П10 <>_пусто,"_П10,","");
	//последняя запятая не нужна
	строкаПараметровБезПоследнейЗапятой = Сред(строкаПараметров,1,СтрДлина(строкаПараметров)-1);
	СтрокаВыполнения = "Объект."+ИмяМетода+"("+строкаПараметровБезПоследнейЗапятой+")";

	Успех = Истина;
	Попытка
		Выполнить(СтрокаВыполнения);
	Исключение
		Успех = Ложь;
		ПолученноеОписаниеОшибки = ИнформацияОбОшибке().Описание;
	КонецПопытки;

	Я_Тест.Проверить(Успех, "Хотели, чтобы код """+СтрокаВыполнения+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""."+
			Символы.ПС + "Переданные параметры: "+
" 1: "+?(_П1 <> _пусто,_П1,"<пустой>")+" "+
" 2: "+?(_П2 <> _пусто,_П2,"<пустой>")+" "+
" 3: "+?(_П3 <> _пусто,_П3,"<пустой>")+" "+
" 4: "+?(_П4 <> _пусто,_П4,"<пустой>")+" "+
" 5: "+?(_П5 <> _пусто,_П5,"<пустой>")+" "+
" 6: "+?(_П6 <> _пусто,_П6,"<пустой>")+" "+
" 7: "+?(_П7 <> _пусто,_П7,"<пустой>")+" "+
" 8: "+?(_П8 <> _пусто,_П8,"<пустой>")+" "+
" 9: "+?(_П9 <> _пусто,_П9,"<пустой>")+" "+
" 10: "+?(_П10 <> _пусто,_П10,"<пустой>")+" ");
КонецПроцедуры
 


  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #33 - 12. Марта 2010 :: 11:43
Печать  
lustin писал(а) 12. Марта 2010 :: 10:44:
набросал в первом приближении еще один тест для модуля Я_Тест

Процедура ПроверитьМетодВыполнилсяСПараметрами(Объект, ИмяМетода, ПараметрыРазныеПоУмолчанию = ...)

Меня смутила фраза "еще один тест для модуля"
даже начал писать опровержение Улыбка
Оказывается, нужно читать как "еще одно утверждение"
В общем модуле Я_Тест содержатся именно утверждения Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #34 - 12. Марта 2010 :: 11:44
Печать  
А вообще не хватает метода-утверждения для проверки вызова методов-функций, а именно проверки значения, возвращаемого методом-функцией.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #35 - 12. Марта 2010 :: 12:03
Печать  
artbear писал(а) 12. Марта 2010 :: 11:44:
А вообще не хватает метода-утверждения для проверки вызова методов-функций, а именно проверки значения, возвращаемого методом-функцией.


согласен. и еще не хватает метода-утверждения для проверки "выброса" исключения проверяемым методом

что-то типа Я_Тест.ПроверитьМетодВыполнилсяСИсключением(...)

  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #36 - 20. Марта 2010 :: 12:42
Печать  
Как обстоят дела с тестированием форм объектов?
например, как узнать, было какое-то исключение в процессе открытия ? например, ошибка при исполнении события ПриОткрытии
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #37 - 22. Марта 2010 :: 05:03
Печать  
artbear писал(а) 20. Марта 2010 :: 12:42:
Как обстоят дела с тестированием форм объектов?
например, как узнать, было какое-то исключение в процессе открытия ? например, ошибка при исполнении события ПриОткрытии

Никак не обстоят. 1С не обрабатывает в Попытке ошибки, возникающие при открытии форм, и исправлять это поведение они не собираются.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #38 - 22. Марта 2010 :: 05:05
Печать  
artbear писал(а) 07. Марта 2010 :: 17:31:
И Кстати, у тебя не хватает полезных функций ПроверитьЗаполненность, ПроверитьНезаполненность, ПроверитьТип Улыбка

В чем их полезность? Почему тот же ПроверитьТип нельзя заменить на ПроверитьРавенство?
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #39 - 22. Марта 2010 :: 09:34
Печать  
fez писал(а) 22. Марта 2010 :: 05:05:
artbear писал(а) 07. Марта 2010 :: 17:31:
И Кстати, у тебя не хватает полезных функций ПроверитьЗаполненность, ПроверитьНезаполненность, ПроверитьТип Улыбка

В чем их полезность? Почему тот же ПроверитьТип нельзя заменить на ПроверитьРавенство?

1. По заполненности - одной функцией удобно проверять различные объекты, как простые и прикладные, так и мутабельные.
Код выглядит лучше и проще для понимания.
2. ПроверитьТип - код выглядит нагляднее Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #40 - 23. Марта 2010 :: 15:44
Печать  
Федор, что скажешь по поводу идеи:
хочу выложить твою обработку, допиленную мной, на ИС (Инфостарт) и там же вести сопровождение, обновление, доп.обсуждение и т.п. ?
Авторство, естественно, будет указано твое.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Donat
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 152
Зарегистрирован: 29. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #41 - 23. Марта 2010 :: 16:27
Печать  
Что вы все так любите этот дурацкий Инфостарт?  Озадачен
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #42 - 23. Марта 2010 :: 18:10
Печать  
Donat писал(а) 23. Марта 2010 :: 16:27:
Что вы все так любите этот дурацкий Инфостарт?  Озадачен

альтернативы нету на мой взгляд.

хотя лучше обсуждение Инфостарта перенести  в курилку Улыбка
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #43 - 23. Марта 2010 :: 19:18
Печать  
Donat писал(а) 23. Марта 2010 :: 16:27:
Что вы все так любите этот дурацкий Инфостарт?  Озадачен

Кто его любит-то? Улыбка))
  
Наверх
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #44 - 23. Марта 2010 :: 20:42
Печать  
trdm писал(а) 23. Марта 2010 :: 19:18:
Donat писал(а) 23. Марта 2010 :: 16:27:
Что вы все так любите этот дурацкий Инфостарт?  Озадачен

Кто его любит-то? Улыбка))


тссссссс  Со сжатыми губами Артур говорят там в Совете состоит... (http://infostart.ru/community/groups/153/users/)
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #45 - 24. Марта 2010 :: 10:09
Печать  
artbear писал(а) 23. Марта 2010 :: 15:44:
Федор, что скажешь по поводу идеи:
хочу выложить твою обработку, допиленную мной, на ИС (Инфостарт) и там же вести сопровождение, обновление, доп.обсуждение и т.п. ?
Авторство, естественно, будет указано твое.

Ты конечно же можешь допиливать и выкладывать мою обработку (gpl и все такое) - но поскольку я планирую допиливать свою обработку самостоятельно, и 1cpp мне нравится чуть больше инфостарта - то это будет гарантированный форк.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #46 - 24. Марта 2010 :: 12:35
Печать  
Федор, понимаешь, сейчас твоя разработка затормозилась Печаль
и нет организации групповой разработки.
А я как раз плотно занимаюсь юнит-тестами, потому что у меня идет серьезная реорганизация базы 8-ки.
Без тестов очень сложно.
и отсутствие некоторых возможностей в браузере меня сильно тормозит.
Конечно, я сам для себя допиливаю код, но это не выход, не хочется делать собственную ветку.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #47 - 25. Марта 2010 :: 08:30
Печать  
artbear писал(а) 24. Марта 2010 :: 12:35:
Федор, понимаешь, сейчас твоя разработка затормозилась Печаль

Кто тебе сказал? Если я не выкладываю каждый день новые версии - это не значит, что у меня их нет.

Цитата:
и нет организации групповой разработки.

Репозитория с доступом на запись скорее всего не будет. Если у тебя есть серьезные намерения по доработкам - велкам ту скайп - обсудим технологию.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #48 - 25. Марта 2010 :: 14:26
Печать  
lustin писал(а) 23. Марта 2010 :: 20:42:
trdm писал(а) 23. Марта 2010 :: 19:18:
Donat писал(а) 23. Марта 2010 :: 16:27:
Что вы все так любите этот дурацкий Инфостарт?  Озадачен

Кто его любит-то? Улыбка))


тссссссс  Со сжатыми губами Артур говорят там в Совете состоит... (http://infostart.ru/community/groups/153/users/)

ОФФ. Нравится он мне Улыбка
Ага, я там даже модератор.
Я еще и на проклубе модератор, правда, давно не заглядывал Улыбка
А Федор на мисте модератор.
И нам это в работе на данном форуме не мешает нисколько.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #49 - 25. Марта 2010 :: 14:28
Печать  
В багзилле заведен новый модуль
un8Test для регистрации ошибок/хотелок сабжа.

http://www.1cpp.ru/bugs

Я лично внес 10 своих ошибок/пожеланий.
Велкам.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #50 - 25. Марта 2010 :: 14:36
Печать  
Фоновые задания, интересно, как тестить?
Или, например, как протестить работу обработки ожидания?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #51 - 25. Марта 2010 :: 16:46
Печать  
artbear писал(а) 25. Марта 2010 :: 14:26:
А Федор на мисте модератор.

Давно уже нет.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #52 - 07. Апреля 2010 :: 05:28
Печать  
Народ, давайте обсудим схему тестирования работы пользователя с ограниченными правами.
Пока не могу придумать, как общим образом тестировать работу подобного пользователя Печаль
Сейчас я делаю так - есть отдельные тесты, тестирующие ограниченный функционал.
Приходится их руками запускать в отдельном сеансе для тестового пользователя.
Плохо то, что
1. ручной запуск
2. результаты работы тестов прав отличаются для пользователя с ограниченными и полными правами.
т.е. не выполнишь запуск всех тестов, будет куча ошибок, что затрудняет анализ.
3. опять же не все тесты можно запустить для пользователя с ограниченными правами.
также куча ошибок и проблема с анализом.

Жду советов Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #53 - 14. Апреля 2010 :: 13:47
Печать  
Всем привет! Улыбка

Цитата:
как общим образом тестировать работу подобного пользователя


В принципе, просто. В тестовой среде выполняем примерно следующее:
- программно создаем юзера
- добавляем ему тестируемые роли
- посредством ОЛЕ открываем сеанс созданного юзера
- манипулируем тестдрайвером
- проверяем, фиксируем результат
- удаляем юзера.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #54 - 15. Апреля 2010 :: 03:45
Печать  
Палыч писал(а) 14. Апреля 2010 :: 13:47:
- манипулируем тестдрайвером

Это как?
просто запускаем тесты чтоли?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #55 - 15. Апреля 2010 :: 06:41
Печать  
artbear писал(а) 15. Апреля 2010 :: 03:45:
Это как?
просто запускаем тесты чтоли?


Ну да, запускаем тесты: открываем формы, жмем кнопки и т.п.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #56 - 16. Апреля 2010 :: 12:22
Печать  
Палыч писал(а) 14. Апреля 2010 :: 13:47:
- посредством ОЛЕ открываем сеанс созданного юзера

ИМХО здесь могут быть отличия от нормальной, интерактивной работы пользователя.
В режиме внешнего соединения не все методы 1С работают.
Например, будет ли работать открытие форм объектов?

  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #57 - 16. Апреля 2010 :: 14:36
Печать  
artbear
Речь идет не про режим внешнего соединения, а про запуск в режиме automation server. Это выглядит так же как и в семерке. Никаких отличий от обычного сеанса нет.
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #58 - 23. Апреля 2010 :: 14:20
Печать  
Хочу пофлеймить на тему.

Есть утверждение Я_Тест.ПроверитьВыполнить(). В качестве параметра туда приходит некоторая строка, эта строка засовывается в восьмерочное Выполнить(), если Выполнить выполнилось без ошибок - утверждение утверждает. Если нет - выдает диагностику.

Как правильно написать тест на данный участок кода?
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #59 - 23. Апреля 2010 :: 14:39
Печать  
ПроверитьВыполнилось() - это полбеды. Там более-менее ясно. Как быть с ПроверитьНеВыполнилось()?
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #60 - 23. Апреля 2010 :: 17:42
Печать  
fez писал(а) 23. Апреля 2010 :: 14:39:
ПроверитьВыполнилось() - это полбеды. Там более-менее ясно. Как быть с ПроверитьНеВыполнилось()?

Процедура Тест_ПроверитьНеВыполнилось() Экспорт
     строка = "рез = 1/0";
     Я_Тест.ПроверитьНеВыполнилось(строка, "Деление на 0");
КонецПроцедуры
тест прошел Улыбка

и еще на всякий случай

Процедура Тест_ПроверитьНеВыполнилось_ВыполнимыйКод() Экспорт
     строкаВыполнения = "строка = ""рез = 1"";
     |Я_Тест.ПроверитьНеВыполнилось(строка, ""Деление на 0"");
     |";
     Я_Тест.ПроверитьНеВыполнилось(строкаВыполнения, "Хотели, чтобы код ""рез = 1"" упал, а он выполнился");
КонецПроцедуры
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #61 - 24. Апреля 2010 :: 06:50
Печать  
fez писал(а) 23. Апреля 2010 :: 14:39:
ПроверитьВыполнилось() - это полбеды. Там более-менее ясно. Как быть с ПроверитьНеВыполнилось()?

ИМХО для обоих методов самое страшное - то, что они неверно работают с контекстом Печаль
например, не проходит следующий тест
Цитата:
Процедура Тесты_ПроверитьВыполнилось_НеверныйКонтекст() Экспорт
     переменнаяЭтогоКонтекста = 2;
     строка = "рез = переменнаяЭтогоКонтекста";
     Я_Тест.ПроверитьВыполнилось(строка);
КонецПроцедуры

потому что модуль Я_Тест ничего не знает о текущем контексте и о переменнаяЭтогоКонтекста.

т.е. ИМХО в общем случае (с разными контекстами) через метод общего модуля проверить работу "Выполнить" нельзя Печаль
Нужно придумать, каким образом можно передать контекст
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #62 - 25. Апреля 2010 :: 17:38
Печать  
fez писал(а) 23. Апреля 2010 :: 14:20:
Хочу пофлеймить на тему.

Есть утверждение Я_Тест.ПроверитьВыполнить(). В качестве параметра туда приходит некоторая строка, эта строка засовывается в восьмерочное Выполнить(), если Выполнить выполнилось без ошибок - утверждение утверждает. Если нет - выдает диагностику.

Как правильно написать тест на данный участок кода?


Должен признаться, что не могу придумать ситуацию, где бы понадобилось такая сложная конструкция. Улыбка
Ну и, если я правильно понимаю логику работы утверждения,  и если мы тестируем некий метод на предмет генерации им исключения, логично было бы передавать туда строку кода с уникальным типом исключения. Что-то вроде:

Процедура Тест_ПроверитьНеВыполнилось() Экспорт

     сиг = "некаяУникальнаяСигнатура";
     былоИсключение = ложь;

     попытка
       Я_Тест.ПроверитьНеВыполнилось("ВызватьИсключение(" + сиг + ")");
     исключение
        искл = ОписаниеИсключения();
        былоИсключение = истина;
     конецПопытки;

     если не былоИсключение или не __Строка.Содержит(стр, сиг) тогда
        ВызватьИсключение("Исключение не всплывает"); // и прочая диагностика
     конецЕсли;

КонецПроцедуры
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #63 - 26. Апреля 2010 :: 10:20
Печать  
artbear писал(а) 23. Апреля 2010 :: 17:42:
fez писал(а) 23. Апреля 2010 :: 14:39:
ПроверитьВыполнилось() - это полбеды. Там более-менее ясно. Как быть с ПроверитьНеВыполнилось()?

Процедура Тест_ПроверитьНеВыполнилось() Экспорт
     строка = "рез = 1/0";
     Я_Тест.ПроверитьНеВыполнилось(строка, "Деление на 0");
КонецПроцедуры
тест прошел Улыбка

У тебя осталась непокрытой тестом ветка Исключение.
Палыч правильно написал. Только меня немного смущает, что код теста практически дублирует тестируемый код.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #64 - 26. Апреля 2010 :: 10:21
Печать  
Палыч писал(а) 25. Апреля 2010 :: 17:38:
Должен признаться, что не могу придумать ситуацию, где бы понадобилось такая сложная конструкция. Улыбка

Ну это... как сказать... академический интерес Улыбка Стремление к прекрасному, наверное Улыбка
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #65 - 26. Апреля 2010 :: 10:51
Печать  
fez писал(а) 26. Апреля 2010 :: 10:20:
artbear писал(а) 23. Апреля 2010 :: 17:42:
fez писал(а) 23. Апреля 2010 :: 14:39:
ПроверитьВыполнилось() - это полбеды. Там более-менее ясно. Как быть с ПроверитьНеВыполнилось()?

Процедура Тест_ПроверитьНеВыполнилось() Экспорт
     строка = "рез = 1/0";
     Я_Тест.ПроверитьНеВыполнилось(строка, "Деление на 0");
КонецПроцедуры
тест прошел Улыбка

У тебя осталась непокрытой тестом ветка Исключение.

Где осталась?
Цитата из поста выше
Цитата:
и еще на всякий случай

Процедура Тест_ПроверитьНеВыполнилось_ВыполнимыйКод() Экспорт
     строкаВыполнения = "строка = ""рез = 1"";
     |Я_Тест.ПроверитьНеВыполнилось(строка, ""Деление на 0"");
     |";
     Я_Тест.ПроверитьНеВыполнилось(строкаВыполнения, "Хотели, чтобы код ""рез = 1"" упал, а он выполнился");
КонецПроцедуры

  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #66 - 26. Апреля 2010 :: 13:27
Печать  
А, вчитался. Как-то мне идея тестировать код с помощью его же самого... ну не внушает.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #67 - 26. Апреля 2010 :: 14:02
Печать  
fez писал(а) 26. Апреля 2010 :: 13:27:
Как-то мне идея тестировать код с помощью его же самого... ну не внушает.

А вспомни Бека и его построение системы тестирования в книге Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #68 - 26. Апреля 2010 :: 14:03
Печать  
fez писал(а) 26. Апреля 2010 :: 10:20:
Только меня немного смущает, что код теста практически
дублирует тестируемый код.

Вот в моем варианте как раз дублирования и нету Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #69 - 26. Апреля 2010 :: 14:16
Печать  
artbear писал(а) 26. Апреля 2010 :: 14:02:
fez писал(а) 26. Апреля 2010 :: 13:27:
Как-то мне идея тестировать код с помощью его же самого... ну не внушает.

А вспомни Бека и его построение системы тестирования в книге Улыбка

Напомни. Не люблю отсылок к авторитетам Улыбка
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #70 - 27. Апреля 2010 :: 03:41
Печать  
fez писал(а) 26. Апреля 2010 :: 14:16:
artbear писал(а) 26. Апреля 2010 :: 14:02:
fez писал(а) 26. Апреля 2010 :: 13:27:
Как-то мне идея тестировать код с помощью его же самого... ну не внушает.

А вспомни Бека и его построение системы тестирования в книге Улыбка

Напомни. Не люблю отсылок к авторитетам Улыбка

Он разработку собственной системы тестирования ведет с помощью тестирования на базе этой же разработки
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #71 - 27. Апреля 2010 :: 08:15
Печать  
Против такого масштабного самотестирования я не возражаю. Но тестировать процедуру самой собой... такое есть у Бека?
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #72 - 13. Мая 2010 :: 17:01
Печать  
Выложил 0.073. http://www.1cpp.ru/forum/YaBB.pl?num=1273769981/0#0

Добавил возможность указания произвольного имени тесту.
Добавил много внутренних тестов. Но эта часть работы еще не закончена.
Общее причесывание.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #73 - 14. Мая 2010 :: 04:27
Печать  
artbear писал(а) 24. Апреля 2010 :: 06:50:
fez писал(а) 23. Апреля 2010 :: 14:39:
ПроверитьВыполнилось() - это полбеды. Там более-менее ясно. Как быть с ПроверитьНеВыполнилось()?

ИМХО для обоих методов самое страшное - то, что они неверно работают с контекстом Печаль
например, не проходит следующий тест
Цитата:
Процедура Тесты_ПроверитьВыполнилось_НеверныйКонтекст() Экспорт
     переменнаяЭтогоКонтекста = 2;
     строка = "рез = переменнаяЭтогоКонтекста";
     Я_Тест.ПроверитьВыполнилось(строка);
КонецПроцедуры

потому что модуль Я_Тест ничего не знает о текущем контексте и о переменнаяЭтогоКонтекста.

т.е. ИМХО в общем случае (с разными контекстами) через метод общего модуля проверить работу "Выполнить" нельзя Печаль
Нужно придумать, каким образом можно передать контекст

А все-таки что скажете об этой проблеме?
лично мне из-за этой проблемы сейчас приходится код ПроверитьВыполнилось/НеВыполнилось разворачивать непосредственно в месте, где запускается Выполнить Печаль
другого варианта пока не нашел Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #74 - 14. Мая 2010 :: 05:13
Печать  
О, а я думал, что это синтетическая проблема и особо в нее не вникал. Артур, расскажи плиз поподробнее про твой реальный пример, мне так будет проще въехать в суть.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #75 - 14. Мая 2010 :: 06:00
Печать  
fez писал(а) 14. Мая 2010 :: 05:13:
О, а я думал, что это синтетическая проблема и особо в нее не вникал. Артур, расскажи плиз поподробнее про твой реальный пример, мне так будет проще въехать в суть.

Не могу вспомнить, для какой задачи это было Печаль - что-то с генерацией кода вроде бы.
Но результат проблемы в том, что для любой реальной задачи, которая юзает данные из текущего контекста, сами методы ПроверитьВыполнилось и ПроверитьНеВыполнилось практически бесполезны Печаль и приходится их код тупо вставлять в текст Печаль
Пример я привел выше.

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

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #76 - 14. Мая 2010 :: 07:00
Печать  
artbear писал(а) 14. Мая 2010 :: 04:27:
А все-таки что скажете об этой проблеме?

Честно говоря, мне вобще не ясна суть проблемы. Ты что тестируешь? Реализацию метода Выполнить() в платформе?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #77 - 14. Мая 2010 :: 07:09
Печать  
Палыч писал(а) 14. Мая 2010 :: 07:00:
artbear писал(а) 14. Мая 2010 :: 04:27:
А все-таки что скажете об этой проблеме?

Честно говоря, мне вобще не ясна суть проблемы. Ты что тестируешь? Реализацию метода Выполнить() в платформе?

Изначально хотел протестировать работу кода, выполняемого внутри Выполнить.
Можно тестировать результаты работы кода, например, изменения в БД - этот способ работает.
А иногда нужно проверить код, который не должен выполниться или выполниться с ошибкой, вот в этом случае есть указанные проблемы.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #78 - 14. Мая 2010 :: 07:28
Печать  
Т.е. это скрипты, которые хранятся в базе? Я правильно понял?
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #79 - 14. Мая 2010 :: 12:52
Печать  
Я понял. Причина закопана вот тут: http://www.1cpp.ru/bugs/show_bug.cgi?id=4437
Мое мнение - на данном этапе проблема скорее синтетическая, чем реальная.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #80 - 14. Мая 2010 :: 13:49
Печать  
fez писал(а) 14. Мая 2010 :: 12:52:
Я понял. Причина закопана вот тут: http://www.1cpp.ru/bugs/show_bug.cgi?id=4437
Мое мнение - на данном этапе проблема скорее синтетическая, чем реальная.

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

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #81 - 14. Мая 2010 :: 14:23
Печать  
artbear писал(а) 14. Мая 2010 :: 13:49:
а уж потом мне в своей конфе потребовалось Улыбка

Пример, ну пожалуйста...
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #82 - 18. Мая 2010 :: 11:45
Печать  
fez писал(а) 14. Мая 2010 :: 14:23:
artbear писал(а) 14. Мая 2010 :: 13:49:
а уж потом мне в своей конфе потребовалось Улыбка

Пример, ну пожалуйста...

Ну вот только что опять нарвался.
Мне нужно проверить, что документ не провелся.
Код проведения
Цитата:
           докОбъект.Записать(РежимЗаписиДокумента.Проведение);

Использую тестовое утверждение
Цитата:
           строкаВыполненияПроведения = "докОбъект.Записать(РежимЗаписиДокумента.Проведение)";
           Я_Тест.ПроверитьНеВыполнилось(строкаВыполненияПроведения, "", "провелся Печаль");

запускаю тест, получаю его падение с ошибкой компиляции.
так что тест нифига не искуственный Печаль

ЗЫ ПроверитьМетодНеВыполнился также не подходит, т.к в нем нет параметров.
ИМХО нужно добавить метод, который lustin выложил в ветке выше.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #83 - 18. Мая 2010 :: 12:11
Печать  
artbear
Что-то мне не совсем понятно, а зачем здесь Выполнить()?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #84 - 18. Мая 2010 :: 12:56
Печать  
Палыч писал(а) 18. Мая 2010 :: 12:11:
Что-то мне не совсем понятно, а зачем здесь Выполнить()?

А как проверить, что документ не провелся при выполнение Записать ?
ИМХО либо закидывать в попытку и анализировать, что равносильно развертке ПроверитьНеВыполнилось, как сейчас и работаю,
либо через Выполнить и также в попытке.
Неужели еще есть варианты ? Улыбка

Пытался упростить код проверки через ПроверитьНеВыполнилось, но не получается, в чем и есть баг Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #85 - 18. Мая 2010 :: 15:13
Печать  
artbear писал(а) 18. Мая 2010 :: 11:45:
ИМХО нужно добавить метод, который lustin выложил в ветке выше.

Вот это - верное предложение. Только его допилить нужно. Чтобы количество параметров было неограниченным, чтобы был аналогичное утверждение на невыполнение, ну и тесты на оба.

А Выполнить() к данной ситуации не имеет никакого отношения, как мне кажется.
  
Наверх
www  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #86 - 18. Мая 2010 :: 16:07
Печать  
artbear писал(а) 18. Мая 2010 :: 12:56:
А как проверить, что документ не провелся при выполнение Записать ?

Ну, как минимум, нужно проверять описание исключения, чтобы убедиться, что именно документ не провелся. Об этом я писал выше, в своем примере. Ведь смысл теста не в том, что произошло исключение, а в том, что произошло именно ожидаемое исключение.
Поэтому, если уж ты хочешь компактности в коде тестов, нужен метод проверяющий ОписаниеИсключения() на соответствие ожидаемому. А проведение в попытке - это тело теста, его не стОит выносить в универсальную функцию.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #87 - 19. Мая 2010 :: 05:03
Печать  
Палыч писал(а) 18. Мая 2010 :: 16:07:
artbear писал(а) 18. Мая 2010 :: 12:56:
А как проверить, что документ не провелся при выполнение Записать ?

Ну, как минимум, нужно проверять описание исключения, чтобы убедиться, что именно документ не провелся. Об этом я писал выше, в своем примере. Ведь смысл теста не в том, что произошло исключение, а в том, что произошло именно ожидаемое исключение.
Поэтому, если уж ты хочешь компактности в коде тестов, нужен метод проверяющий ОписаниеИсключения() на соответствие ожидаемому. А проведение в попытке - это тело теста, его не стОит выносить в универсальную функцию.

Выполнить было применено только в качестве кода для упрощения кода проверки, провелся док или нет.
Понимаешь, при проведении документа тупо выдается не исключение, а сообщение пользователю и стандартный Отказ = Истина внутри модуля проведения.
Т.е. текст исключения для проведения будет всегда будет стандартным, и важен сам факт отказа при проведении.

В результате даже в этом простом примере виден факт неприменимости ПроверитьНеВыполнилось Печаль на реальных задачах.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #88 - 19. Мая 2010 :: 05:19
Печать  
fez писал(а) 18. Мая 2010 :: 15:13:
artbear писал(а) 18. Мая 2010 :: 11:45:
ИМХО нужно добавить метод, который lustin выложил в ветке выше.

Вот это - верное предложение. Только его допилить нужно. Чтобы количество параметров было неограниченным, чтобы был аналогичное утверждение на невыполнение, ну и тесты на оба.

Зарегил ошибку http://www.1cpp.ru/bugs/show_bug.cgi?id=4457
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #89 - 19. Мая 2010 :: 05:29
Печать  
artbear писал(а) 19. Мая 2010 :: 05:03:
Выполнить было применено только в качестве кода для упрощения кода проверки, провелся док или нет.
Понимаешь, при проведении документа тупо выдается не исключение, а сообщение пользователю и стандартный Отказ = Истина внутри модуля проведения.
Т.е. текст исключения для проведения будет всегда будет стандартным, и важен сам факт отказа при проведении.

Что-то мы друг-друга недопонимаем. Улыбка
Как это "тупо выдается не исключение"? Именно исключение и происходит, когда Отказ = истина. Ты же сам далее об этом пишешь. При чем исключение может быть двух типов:
- "Операция не выполнена", когда Отказ = истина;
- все остальные необработанные исключения. Например, при делении на ноль.
Цель теста - выявить что сработал именно Отказ = истина, а не что-то другое.
Т.е., еще раз подчеркну: если мы тестируем обработку отказа в проведении, то проверять мы должны именно это исключение. А все остальные исключения, в правильном коде, возникать, в принципе, не должны. И это тоже проверяется, но уже другими тестами.

Цитата:
В результате даже в этом простом примере виден факт неприменимости ПроверитьНеВыполнилось Печаль на реальных задачах.

Я бы даже сказал он, в принципе, не должен быть востребован никогда.  Смех
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #90 - 19. Мая 2010 :: 10:55
Печать  
Палыч писал(а) 19. Мая 2010 :: 05:29:
Цитата:
В результате даже в этом простом примере виден факт неприменимости ПроверитьНеВыполнилось Печаль на реальных задачах.

Я бы даже сказал он, в принципе, не должен быть востребован никогда.  Смех

К слову. ПроверитьНеВыполнилось проверяет не только факт того, что код не выполнился, но и проверяет, что он не выполнился с конкретным сообщением об ошибке. Так что все ваши упреки считаю несостоятельными Подмигивание
  
Наверх
www  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #91 - 19. Мая 2010 :: 10:59
Печать  
Федор, я немного не в тему вопрос задам.
А как относятся в твоей новой организации к тому, что бОльшую часть наработок ты выкладываешь в открытый доступ с открытым кодом?
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #92 - 19. Мая 2010 :: 11:07
Печать  
Нормально относятся. Специально этот вопрос обсудили, и решили, что поскольку моя работа не связана с core технологиями моей компании - то нет проблем.

Собственно, я не единственный тут, кто выкладывает что-то в опенсорс Подмигивание Русская сборка файрфокса и jabber-клиент Я-Онлайн - самые известные примеры.
  
Наверх
www  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #93 - 19. Мая 2010 :: 12:37
Печать  
fez писал(а) 19. Мая 2010 :: 10:55:
Палыч писал(а) 19. Мая 2010 :: 05:29:
Цитата:
В результате даже в этом простом примере виден факт неприменимости ПроверитьНеВыполнилось Печаль на реальных задачах.

Я бы даже сказал он, в принципе, не должен быть востребован никогда.  Смех

К слову. ПроверитьНеВыполнилось проверяет не только факт того, что код не выполнился, но и проверяет, что он не выполнился с конкретным сообщением об ошибке. Так что все ваши упреки считаю несостоятельными Подмигивание


Да ну, какие упреки!  Так, скромное мнение по поводу. Исключительно из любви к прекрасному.  Улыбка
А метод ПроверитьНеВыполнилось мне не нравится из-за того, что передача строки кода в параметре метода выглядит в коде теста несколько притянутой за уши. Не говоря уже о том, что редактор теряет контроль над этим фрагментом. Даже несмотря на то, что метод проверяет текст исключения.  Улыбка
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #94 - 17. Июля 2010 :: 10:54
Печать  
Нарвался на странное поведение SnowTest Печаль
У меня есть несколько подряд запускаемых тестов, в которых проводятся доки и затем получаются необходимые результирующие остатки, которые и тестируются/сверяются с эталоном.
Иногда (и это не очень редко Печаль ) тесты падают и по результатам видно, что остатки не являются точными, а состоят из остатков предыдущих тестов Печаль
т.е. такое впечатление, что транзакция по завершении теста не отменяется, а выполняется далее Печаль
1. все тесты - чистые, и элементы справочников, и сами доки создаются на лету.
2. используется умолчальный режим запуска транзакций для теста.

Что делать?

Вопрос снят - как всегда, неверное написание теста.
Я остатки получал просто на дату, без границы, вот и показывались неверные результаты Печаль
« Последняя редакция: 18. Июля 2010 :: 05:56 - artbear »  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #95 - 19. Июля 2010 :: 04:50
Печать  
Кстати, интересный момент нарисовался при тестировании.
Работаю над тестированием определенной последовательности -
сначала создаю/провожу док1 (Вид1), затем док2 (Вид2), и проверяю остатки по регистрам после дока1 и дока2.
Если проводить документы в оперативном режиме времени, то документы очень часто имеют одну и ту же дату/время, и в последовательности довольно часто второй док (Вид2) стоит раньше, чем док1 Печаль из-за чего и возникают различные глюки в остатках Печаль
Что скажете? Возникала ли подобная проблема у Вас? Как ее решаете?

ЗЫ в тестировании текущей задачи пока отказался от оперативного проведения.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #96 - 28. Июля 2010 :: 14:19
Печать  
Вопрос: какие фабричные методы используете для создания новых элементов справочников и документов?

У меня вот такие аналоги юзаются
Цитата:
Функция ПолучитьНовыйЭлементСправочника(ВидСправочника)
     Результат = Справочники[ВидСправочника].СоздатьЭлемент();
     Попытка
           Результат.Записать();
     Исключение
           ВызватьИсключение "!!! Не удалось создать новый элемент справочника <"+ВидСправочника+"> !!!";
     КонецПопытки;
     Возврат Результат;
КонецФункции

Функция Контрагент(ЗначенияДляЗаполнения = Неопределено)
     видСправочника = "Контрагенты";
     Результат = Справочники[видСправочника].СоздатьЭлемент();
     Результат.УчитыватьПоРегистру065 = Истина;
     
     Если ЗначениеЗаполнено(ЗначенияДляЗаполнения) Тогда
           ЗаполнитьЗначенияСвойств(Результат, ЗначенияДляЗаполнения);
     КонецЕсли;
           артТесты.ПроверитьТип(результат, "СправочникОбъект."+видСправочника, "Не удалось создать <"+видСправочника+">");
     Результат.Записать();
     Возврат результат;
КонецФункции

Функция Выписка(датаДокумента, ШапкаДокумента = Неопределено, ТабличнаяЧасть = Неопределено)
           артТесты.ПроверитьЗаполненность(датаДокумента, "датаДокумента");
           Если ШапкаДокумента <> Неопределено Тогда
                 артТесты.ПроверитьТип(ШапкаДокумента, "Структура", "ТабличнаяЧасть");
           КонецЕсли;
           Если ТабличнаяЧасть <> Неопределено Тогда
                 артТесты.ПроверитьТип(ТабличнаяЧасть, "ТаблицаЗначений", "ТабличнаяЧасть");
           КонецЕсли;
     
     результат = Документы.Выписка.СоздатьДокумент();
     результат.Организация = Константы.ОсновнаяОрганизация.Получить();
     
     естьЗаполненныеСвойства = ЗначениеЗаполнено(ШапкаДокумента);
           //Если НЕ естьЗаполненныеСвойства ИЛИ НЕ ШапкаДокумента.Свойство("Клиент") Тогда
           //      клиентОбъект = Контрагент();
           //      клиент = клиентОбъект.Ссылка;
           //      результат.Клиент = клиент;
           //КонецЕсли;
     
     результат.Дата = датаДокумента;
     Если естьЗаполненныеСвойства Тогда
           ЗаполнитьЗначенияСвойств(результат, ШапкаДокумента);
     КонецЕсли;
     
     результат.УстановитьНовыйНомер("тест");
     
     естьТабличнаяЧасть = ЗначениеЗаполнено(ТабличнаяЧасть);
     Если естьТабличнаяЧасть Тогда
           результат.тч.Загрузить(ТабличнаяЧасть);
                 артТесты.ПроверитьРавенство(ТабличнаяЧасть.Количество(), результат.тч.Количество(), "ТабличнаяЧасть.Количество(), результат.тчДоки.Количество()");
     КонецЕсли;

     результат.Записать();
           Если естьТабличнаяЧасть Тогда
                 артТесты.ПроверитьБольше(результат.тч.Количество(), 0, "результат.тч.Количество()");
           КонецЕсли;
           артТесты.ПроверитьЗаполненность(результат.Ссылка, "Расходная - результат.Ссылка");
     Возврат результат;
КонецФункции


Ну и примеры использования:
Цитата:
     клиентОбъект = Контрагент(Новый Структура("Использовать", Истина));
     клиент = клиентОбъект.Ссылка;
     докВыписка = Выписка(ТекущаяДата(), Новый Структура("Клиент", клиент));
           артТесты.ПроверитьРавенство(докВыписка.Клиент, клиент, "докВыписка.Клиент, клиент");

  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #97 - 18. Августа 2010 :: 13:43
Печать  
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #98 - 23. Августа 2010 :: 10:17
Печать  
Федор, решал ли ты вопрос с тестированием отложенных событий форм? Например, тестирование внешних событий или обработок ожидания.

Какие есть мысли по поводу построения подобного тестирования в 8-ке?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #99 - 01. Октября 2010 :: 11:05
Печать  
Нет, не решал. Мыслей нет.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #100 - 20. Октября 2010 :: 11:18
Печать  
Федор, по поводу выложенных тобой тестов для проверки открытия форм ЮнитТесты_ОткрытиеФормДокументов.epf
Приведенные тобой тесты не всегда точно проверяют открытие форм - не проверяются события, происходящие при/после обновления форм - например, ОбновлениеОтображения, ПриВыводеСтроки, ПриПолученииДанных.
Т.е. тест скажет, что ошибки при открытии формы нет, а при открытии формы пользователем будет ошибка Печаль
Решение - после открытия формы нужно ее обновить, в этом случае ошибка ловится.
Вот код исправления:
Цитата:
Процедура Тест_ОткрытьФормуСуществующегоДокумента(_ИДДокумента) Экспорт
     _Док = Документы[_ИДДокумента].СоздатьДокумент();
     _Док.Дата = ТекущаяДата();
     _Док.Записать();
     Форма = _Док.ПолучитьФорму();
     
     Форма.Открыть();
           Я_Тест.Проверить(Форма.Открыта(), "Форма существующего документа """+_ИДДокумента+""" не открылась, а должна была открыться");
     Форма.Обновить();
КонецПроцедуры

Процедура Тест_ОткрытьФормуНовогоДокумента(_ИДДокумента) Экспорт
     _Док = Документы[_ИДДокумента].СоздатьДокумент();
     Форма = _Док.ПолучитьФорму();
     Форма.Открыть();
           Я_Тест.Проверить(Форма.Открыта(), "Форма нового документа """+_ИДДокумента+""" не открылась, а должна была открыться");
     Форма.Обновить();
КонецПроцедуры


ЗЫ случайно нарвался Улыбка

ЗЗЫ если кому нужно, могу выложить тесты проверки открытия форм элементов и списков справочников, отчетов, обработок, списков документов для SnowTest
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #101 - 20. Октября 2010 :: 11:41
Печать  
Можешь поделиться примером такой формы? Это было бы волшебно.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #102 - 20. Октября 2010 :: 11:46
Печать  
Например, просто в любой форме добавь обработчик события например, ОбновленияОтображения и напиши в нем
ВызватьИсключение "ошибка обновления";

все, твои тесты пройдут, а ручное открытие формы даст ошибку ! Печаль

Случайно нарвался - сделал опечатку в ОбновлениеОтображения, а проверял только через тесты, ошибок не было, а пользователи пожаловались Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #103 - 21. Октября 2010 :: 17:51
Печать  
Спасибо, будет время - поковыряю.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #104 - 28. Июня 2011 :: 07:16
Печать  
Немного доработал работу SnowTest
добавил меню для управления тестами -
  • Обновить все тесты
  • Обновить один тест
  • Снять все флажки
  • Выполнить все тесты
  • Выполнить один тест


При разработке через тесты (TDD) очень удобно использовать только один тест и обновлять только его одного.
Если кому-то нужно, могу выложить свой дополненный вариант.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kuntashov
Full Member
***
Отсутствует


1С:Специалист

Сообщений: 130
Местоположение: Саратов
Зарегистрирован: 13. Июня 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #105 - 02. Августа 2011 :: 08:48
Печать  
artbear писал(а) 28. Июня 2011 :: 07:16:
Если кому-то нужно, могу выложить свой дополненный вариант.


Артур, выложи, пожалуйста, свою версию.
  

С уважением, &&Александр Кунташов&&http://kuntashov.ru/
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #106 - 09. Августа 2011 :: 12:39
Печать  
artbear писал(а) 28. Июня 2011 :: 07:16:
Немного доработал работу SnowTest
добавил меню для управления тестами -
  • Обновить все тесты
  • Обновить один тест
  • Снять все флажки
  • Выполнить все тесты
  • Выполнить один тест


При разработке через тесты (TDD) очень удобно использовать только один тест и обновлять только его одного.
Если кому-то нужно, могу выложить свой дополненный вариант.

Вот мой вариант
  

Snow_Starter_artbear.zip ( 10 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #107 - 10. Ноября 2011 :: 07:33
Печать  
artbear писал(а) 09. Августа 2011 :: 12:39:
artbear писал(а) 28. Июня 2011 :: 07:16:
Немного доработал работу SnowTest
добавил меню для управления тестами -
  • Обновить все тесты
  • Обновить один тест
  • Снять все флажки
  • Выполнить все тесты
  • Выполнить один тест


При разработке через тесты (TDD) очень удобно использовать только один тест и обновлять только его одного.
Если кому-то нужно, могу выложить свой дополненный вариант.

Вот мой вариант



Под 8.2 никто не адаптировал тесты ? Под управляемое приложение.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #108 - 10. Ноября 2011 :: 11:37
Печать  
lustin писал(а) 10. Ноября 2011 :: 07:33:
Под 8.2 никто не адаптировал тесты ? Под управляемое приложение.

Версия для 8.2 есть, но без управляемого приложения (не работаю я в нем пока)
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Belomor
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 28. Марта 2008
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #109 - 15. Ноября 2011 :: 07:45
Печать  
artbear писал(а) 10. Ноября 2011 :: 11:37:
Версия для 8.2 есть, но без управляемого приложения (не работаю я в нем пока)

Она сильно отличается от того, что лежит в этой ветке? Если да, то выложи, пожалуйста
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #110 - 15. Ноября 2011 :: 11:33
Печать  
Belomor писал(а) 15. Ноября 2011 :: 07:45:
artbear писал(а) 10. Ноября 2011 :: 11:37:
Версия для 8.2 есть, но без управляемого приложения (не работаю я в нем пока)

Она сильно отличается от того, что лежит в этой ветке? Если да, то выложи, пожалуйста

Нет, немного.
Добавил контекстное меню для более удобной разработки и тестирования одного набора тестов
Я в основном, юзаю сабж для разработки в стиле TDD
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Belomor
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 28. Марта 2008
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #111 - 15. Ноября 2011 :: 13:04
Печать  
artbear писал(а) 15. Ноября 2011 :: 11:33:
Нет, немного.
Добавил контекстное меню для более удобной разработки и тестирования одного набора тестов
Я в основном, юзаю сабж для разработки в стиле TDD

А клон FuncTest для 8.1 на инфостарте крайний лежит, никаких более новшеств не было?
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #112 - 15. Ноября 2011 :: 13:23
Печать  
Belomor писал(а) 15. Ноября 2011 :: 13:04:
artbear писал(а) 15. Ноября 2011 :: 11:33:
Нет, немного.
Добавил контекстное меню для более удобной разработки и тестирования одного набора тестов
Я в основном, юзаю сабж для разработки в стиле TDD

А клон FuncTest для 8.1 на инфостарте крайний лежит, никаких более новшеств не было?

Было много добавлений, конечно.
Я постоянно его юзаю, теперь уже на 8.2 Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Belomor
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 28. Марта 2008
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #113 - 15. Ноября 2011 :: 13:28
Печать  
artbear писал(а) 15. Ноября 2011 :: 13:23:
Было много добавлений, конечно.
Я постоянно его юзаю, теперь уже на 8.2 Улыбка

А где можно взять свежую версию? Подмигивание А то сейчас стоит проблема перевода конфы с 7.7 на 8.2, без инструментов тестирования тоскливо будет
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #114 - 16. Ноября 2011 :: 03:36
Печать  
Вот моя последняя рабочая версия 1.20 для платформы 8.2
  

Functest_v8_1_20.7z ( 96 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #115 - 16. Ноября 2011 :: 03:42
Печать  
Belomor писал(а) 15. Ноября 2011 :: 13:28:
А то сейчас стоит проблема перевода конфы с 7.7 на 8.2, без инструментов тестирования тоскливо будет

я при переносе в первую очередь юзаю тесты/запросы
  • запрос по количеству элементов в справочниках/регистрах
  • запрос по количеству дублей и самим дублям элементов в справочниках/регистрах
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Belomor
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 28. Марта 2008
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #116 - 17. Ноября 2011 :: 06:18
Печать  
artbear писал(а) 16. Ноября 2011 :: 03:36:
Вот моя последняя рабочая версия 1.20 для платформы 8.2

Большое спасибо, Артур
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #117 - 25. Ноября 2011 :: 06:38
Печать  
по просьбе JohnyDeath
Off-Topic replies have been moved to this Topic.
  

1&&2&&3
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #118 - 25. Ноября 2011 :: 07:18
Печать  
artbear писал(а) 16. Ноября 2011 :: 03:36:
Вот моя последняя рабочая версия 1.20 для платформы 8.2

При открытии в предприятии:

Цитата:
{ВнешняяОбработка.FuncTest_Для_1Сv81.МодульОбъекта(116)}: Ошибка при вызове метода контекста (Создать): {ВнешняяОбработка.РасчетчикОжиданий_Печать.МодульОбъекта(45,2)}: Переменная не определена (глОбщиеЗначения): {ВнешняяОбработка.РасчетчикОжиданий_Печать.МодульОбъекта(45,2)}: Переменная не определена (глОбщиеЗначения)
Не существует класс РАСЧЕТЧИКОЖИДАНИЙ_ПЕЧАТЬ или его не удалось создать
В базе данных не найден типовой справочник ВнешниеОбработки, работа класса-расчетчика невозможна!
ВНИМАНИЕ: в конфигурации не найден встроенный, типовой отчет "Движения документа". Работа данного расчетчика невозможна.

  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #119 - 25. Ноября 2011 :: 10:44
Печать  
Жень, также заведи новую ветку, отвечу.
Не будем засорять исходную ветку.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kuntashov
Full Member
***
Отсутствует


1С:Специалист

Сообщений: 130
Местоположение: Саратов
Зарегистрирован: 13. Июня 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #120 - 06. Апреля 2012 :: 13:05
Печать  
Артур, какая последняя версия FuncTest'а? Ее можно где-нибудь скачать?

Ко всем:

Появились ли какие-нибудь альтернативные решения по функциональному и/или юнит-тестированию в 1С:Предприятии 8.x?
  

С уважением, &&Александр Кунташов&&http://kuntashov.ru/
Наверх
 
IP записан
 
kuntashov
Full Member
***
Отсутствует


1С:Специалист

Сообщений: 130
Местоположение: Саратов
Зарегистрирован: 13. Июня 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #121 - 16. Апреля 2012 :: 10:05
Печать  
Прошу пощения тех коллег, кто прочитал аналогичное сообщение на форуме Снегопата, но из соображений, что публика форума Снегопата и 1С++  может пересекаться только частично, дублирую его здесь:

Поучаствуйте, пожалуйста, в моем опросе по тестированию решений на 1С:Предприятии 8 на Инфостарте:

http://forum.infostart.ru/forum26/topic58819/

Опрос провожу не из праздного любопытства. Я сейчас внедряю тестирование (пока просто с целью выявления регрессий) для себя лично, на своих разработках/проектах. Параллельно пытаюсь проанализировать, как должен выглядеть и работать инструмент и методика по тестированию, чтобы среднестатестический 1Сник мог ей пользоваться.

Пока еще не далеко ушел, потому что приходится по ряду причин изобретать велосипед, т.к. не смотря на свое существование готовые решения либо слишком самобытны (FuncTest.V8 Артура), либо не развиваются (SnowTest), либо платные (Бизнес-плюс: Выполнение правил проверки, 1С:Сценарное тестирование).

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

Постараюсь по мере возможности собранные данные свести, проанализировать и опубликовать открыто, например, в виде статьи в блоге или в виде публикации на Инфостарте.

Заранее спасибо за участие!
  

С уважением, &&Александр Кунташов&&http://kuntashov.ru/
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #122 - 18. Мая 2012 :: 12:54
Печать  
kuntashov писал(а) 06. Апреля 2012 :: 13:05:
Артур, какая последняя версия FuncTest'а? Ее можно где-нибудь скачать?

Пока что выложу последнюю версию 1.21 здесь

в числе прочих дополнений умеет получать ожидания из произвольных табличных документов, т.е. отчет тупо выдает табличный док на экран, а система тестирования подхватывает на лету (ловля табличных документов сделана с помощью отличной обработки СписокФорм от chessman )
  

Functest_v8_1_21.7z ( 190 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Drx211
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 3
Зарегистрирован: 25. Мая 2011
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #123 - 06. Октября 2012 :: 19:33
Печать  
kuntashov писал(а) 06. Апреля 2012 :: 13:05:
Артур, какая последняя версия FuncTest'а? Ее можно где-нибудь скачать?

Ко всем:

Появились ли какие-нибудь альтернативные решения по функциональному и/или юнит-тестированию в 1С:Предприятии 8.x?

Информация с последнего партнерского семинара, видимо - сотрудники компании 1С наконец-то устали тестировать все ручками! И  - свершилось, платформа повзрослела! В ближайшее время планируется выпуск платформы 8.3 с программным интерфейсом тестирования, записью макросов xml и их автоматического перевода в код обработок тестирования. По инсайдерской информации от сотрудников ЗАО 1С - в интервале год-полтора будут выпущены полные пакеты функциональных тестов, на основе этой технологии для типовых решений.
Может это баян и уже все в курсе, но для меня - была новость, делюсь Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #124 - 08. Октября 2012 :: 03:19
Печать  
Drx211 писал(а) 06. Октября 2012 :: 19:33:
В ближайшее время планируется выпуск платформы 8.3 с программным интерфейсом тестирования, записью макросов xml и их автоматического перевода в код обработок тестирования.

Программный интерфейс проверки форм уже есть, запись макросов в хмл также есть в 8.3.2
Пока все довольно ограниченно.
Посмотрим, что сделает 1С
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Для затравки. Юниттестирование на восьмерке. Очень сырой драфт.
Ответ #125 - 18. Октября 2014 :: 22:16
Печать  
artbear писал(а) 08. Октября 2012 :: 03:19:
Drx211 писал(а) 06. Октября 2012 :: 19:33:
В ближайшее время планируется выпуск платформы 8.3 с программным интерфейсом тестирования, записью макросов xml и их автоматического перевода в код обработок тестирования.

Программный интерфейс проверки форм уже есть, запись макросов в хмл также есть в 8.3.2
Пока все довольно ограниченно.
Посмотрим, что сделает 1С


для тех кто придет по поисковику - в итоге получилось вот так https://github.com/xDrivenDevelopment/xUnitFor1C

P.S. Да уж - длинен пусть от "очень сырого драфта"
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать