Опрос
Опрос Тема Опроса: Да здравствует V8?



« Последняя модификация: trdm : 06. Октября 2007 :: 08:23 »
Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 10 11 12 ОтправитьПечать
Очень популярная тема (более 25 ответов) Вечная тема ) v77 и V8. Ту би ор нот ту би ) (число прочтений - 54749 )
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #120 - 11. Октября 2007 :: 12:01
Печать  
sedmin писал(а) 11. Октября 2007 :: 10:05:
А второе - все равно нужно юнит-тестирование.

ezh на итланде утверждал, что ему удалось прикрутить юниттестирование на восьмерке. Причем утверждал, что там все просто.
  
Наверх
www  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #121 - 11. Октября 2007 :: 12:41
Печать  
Действительно, тема тестирования весьма непопулярна.
Самое интересное что мне попадалось, это ветка на ит-ланде: http://itland.ru/forum/index.php?showtopic=13944&st=0&#entry73316
В частности, там упоминается такая вещь: http://kompfirma.narod.ru/tests.mht, автор RSergio
Но, что-то с тех пор об этом проекте ничего не слышно. [fez, ты не в курсе в каком он сейчас состоянии?]
Ну и ТестЦентр от 1С, который там тоже упоминался, не оправдал надежд: оказалось, что это система нагрузочного тестирования, т.е. не совсем то, что нужно сечас нам.

Поэтому, нам пришлось разработать свои системы функционального и  юниттестирования.
Юнитетстирование реализовано полностью средствами платформы. Система позволяет выполнять тесты объектов конфигурации, включая печатные формы, и тесты процедур общих модулей.
Функциональное тестирование выполняется с помощью пакета TestCopmplete. Для него были разработаны скрипты, взаимодействующие с конфигурацией через ОЛЕ. Система позволяет эмулировать действия пользователя и контролировать реакцию тестируемой конфигурации.

Вот, примерно, такое положение дел в области тестирования.


зы: Да и еще вспомнил: на партнерском форуме кто-то писал, что они разрабатывают какую-то мощную систему функционального тестирования и планируют осенью ее показать. Никто не в курсе?
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #122 - 11. Октября 2007 :: 13:28
Печать  
Звучит, конечно классно, в том числе и про юнит-тестирвание.

А можете привести здесь какой-нибудь юнит-тест? Желательно не процедуры общего модуля, а какого-нибудь объекта конфигурации. Например, проверку правильности расчета чего-нибудь в документе. Чтобы нам увидеть, насколько у вас удобно писать юнит-тесты.
  
Наверх
 
IP записан
 
freagle
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 87
Зарегистрирован: 21. Июня 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #123 - 11. Октября 2007 :: 14:04
Печать  
Цитата:
Например, проверку правильности расчета чего-нибудь в документе. Чтобы нам увидеть, насколько у вас удобно писать юнит-тесты.


Да-да. общество требует разоблачения черной магии  Подмигивание
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #124 - 11. Октября 2007 :: 14:25
Печать  
Ну вот, например, фрагмент тестового модуля:


Код
Выбрать все
процедура Подготовка() экспорт

	ТестовыеДанные.ОчиститьБазу();
	ТестовыеДанные.ЗагрузитьИзФайла("%TESTDATA%\WMS\Базовые\*.xml");

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



процедура ЗафиксироватьПаллетуВДокументе_Отгрузка_тест1() экспорт

	ТестовыеДанные.ЗагрузитьИзФайла(
		"%TESTDATA%\WMS\WMS_СкладскаяОперация\" +
		"ЗафиксироватьПаллетуВДокументе_Отгрузка_тест1\*.xml",
		истина
	);


	гуид 	= "cabb49f6-6732-4d0d-96e6-2f39ebc19021";
	ссылка	= Документы.WMS_СкладскаяОперация.ПолучитьСсылку(
		новый УникальныйИдентификатор(гуид));

	Ассерт.ЭтоЛожь(ссылка.Пустая(),
		"Ошибка в исходных данных: не найден документ ({0})",
		__Массив.Создать(гуид)
	);

	док = ссылка.ПолучитьОбъект();

	Ассерт.Равно(док.Паллеты.Количество(), 0,
		"Ошибка в исходных данных: документ не пустой");

	док.ВидОперации = Перечисления.WMS_ТипыУправляющихЗадач.Отгрузка;

	парам = новый Структура();
	парам.Вставить("ШтрихКод", "N-1");
	парам.Вставить("Кондиционность", Перечисления.ВидыКондиционности.Кондиция);
	парам.Вставить("КоличествоБрака", 0);
	парам.Вставить("КоличествоНедостачи", 0);
	парам.Вставить("КоробочнаяЗона", 0);
	парам.Вставить("Количество", 100);
	парам.Вставить("Сторно", ложь);

	док.ЗафиксироватьПаллетуВДокументе(парам, 1);
	док.Записать();

	wmsДиспетчер_ВыполнитьДиспетчеризацию();

	Ассерт.Равно(док.Паллеты.Количество(), 1, "Строка не добавлена");

	итогПаллетФакт 			= док.Состав.Итог("ПаллетФакт");
	итогПаллетФактДолжноБыть 	= 1;

	Ассерт.Равно(итогПаллетФакт, итогПаллетФактДолжноБыть,
		"Неправильное количество паллет факт: {0}. Должно быть {1}",
		__Массив.Создать(итогПаллетФакт, итогПаллетФактДолжноБыть)
	);

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

 

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


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #125 - 11. Октября 2007 :: 14:53
Печать  
А где описываются переменные ТестовыеДаныне, Ассерт? Где они инициализируются? А где задаются имена тестовых методов, которые надо запускать?
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #126 - 11. Октября 2007 :: 14:58
Печать  
sedmin писал(а) 11. Октября 2007 :: 14:53:
А где описываются переменные ТестовыеДаныне, Ассерт? Где они инициализируются? А где задаются имена тестовых методов, которые надо запускать?


ТестовыеДаныне, Ассерт - это имена неглобальных общих модулей (нововведение 8.1).
Тестовые методы - это все экспортные методы тестового модуля, за исключением предопределенных (Подготовка, Завершение). Какие конкретно тестовые модули методы запускать - выбирается в настройках консоли запуска тестов.
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #127 - 11. Октября 2007 :: 15:07
Печать  
То есть ТестовыеДанные и Ассерт - это синглтоны?
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #128 - 11. Октября 2007 :: 15:09
Печать  
sedmin писал(а) 11. Октября 2007 :: 15:07:
То есть ТестовыеДанные и Ассерт - это синглтоны?

Нет, это классы со статическими методами. Без данных.
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #129 - 11. Октября 2007 :: 15:19
Печать  
Ну, в принципе, вариант, конечно. Только с ООП-то, все равно, все проще получается...

Но, надо сказать, вас можно поздравить с таким достижением.  Подмигивание
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #130 - 11. Октября 2007 :: 15:33
Печать  
sedmin писал(а) 11. Октября 2007 :: 15:19:
Только с ООП-то, все равно, все проще получается...


Это чем же проще? И чем, собсно, мой вариант не соответствует парадигме ООП?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #131 - 11. Октября 2007 :: 15:50
Печать  
Наши люди нигде не пропадут!

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

Одна беда - весь контроль ошибок для таких "классов" - видимо, только в рантайме будет.

Палыч
Или можно как-то проще сделать хотя бы простые классы с состоянием?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #132 - 11. Октября 2007 :: 15:58
Печать  
kms
Зачем? Все гораздо проще. Вот вам объект почти полноценного класса:
Код
Выбрать все
объект = Обработки.МойКласс.Создать()
объект.ЭкспортнаяПеременная = "Значение";
сообщить(объект.ЭкспортнаяПеременная);
объект.ЭкспортныйМетод(); 


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


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #133 - 11. Октября 2007 :: 16:31
Печать  
Классы - это еще не ООП. Еще есть наследование и полиморфизм.

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

А когда мы говорим про ООП, то понимаем весь этот комплекс.
  
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Вечная тема ) v77 и V8. Ту би ор нот ту би )
Ответ #134 - 11. Октября 2007 :: 16:41
Печать  
sedmin
А я, хоть и не Брукс, но тоже давно писал, что без наследования можно запросто обойтись, а полиморфизм применительно к 1С, вообще, не при делах.
Инкапсуляция снимает 80% головняков - и этого вполне достаточно.

Вот скажи, в каком месте мой пример страдает от отсутствия наследования? И что в этом примере можно улучшить, будь наследование в v8?
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 10 11 12
ОтправитьПечать