Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.06.2012, 20:26
Wiali Wiali вне форума
Прохожий
 
Регистрация: 25.06.2012
Сообщения: 3
Репутация: 10
По умолчанию Пара вопросов по тестированию и рефакторингу

Здравствуйте, возникла необходимость сделать рефакторинг чужого кода + решил разобраться и освоить модульное тестирование.

В процессе возникло несколько вопросов:

1. DUnit;
1.1. Стандартный кодогенератор создает шаблон теста так, что если тестируешь класс, то на тест идут только public методы. Понятно, почему: методы тестирования работают с объектом класса, которому доступны только паблик методы. Но ошибки могут быть и в приватных методах, как быть?

1.2. Предположим, класс DBConnector содержит два метода (процедуры), которые инкапсулируют внутри множество методов.

Код:
procedure GetAuthenticationData;
procedure ConnectByDataBase;


Т.е. после GetAuthenticationData изменяются поля класса и ConnectByDataBase использует эти значения для своей работы.

Как тогда протестировать отдельно тот же ConnectByDataBase, которая работает с приватными полями класса?


2. Рефакторинг

2.1. Есть события formcreate, ontimer и часть других методов, которые отвечают за инициализацию данных и вызываются в разное время.

Я так понимаю, лучшее решение воспользоваться паттерном "одиночка"
и инициализировать данные как: singleton.getInstance.egg1,singleton.getInstance.e gg2 и т.д. ?

2.2. Обработка исключений на разных уровнях вложенности функций.

Я просто запутался. Вот к примеру есть такая ситуация ( я сознательсно опускаю некоторые элементы синтаксиса:

Код:
function A;
begin
try
 function B;
except on ExceptionFromB
end

function B;
begin
try
 function C;

 //некоторый код, который поднимает исключение ExceptionFromB

except on ExceptionFromC
end

function C;
begin
 //некоторый код, который поднимает исключение ExceptionFromC
end

Bargest: оформляем код тегами [ code] [ /code]!

Нормальная ли такая конструкция где в функции B и вызывается функция C и поднимается исключение, которое будет обработано на уровне функции А.

+ тут такая ситуация, что если будет поднято исключение ExceptionFromC, то даже в случае того, если будет поднято ExceptionFromB, будет обработано только ExceptionFromC на уровне функции B. Как тогда быть с обработкой исключения на уровне функции А ?

А если я захочу поймав исключение на самом нижнем уровне прекратить выполнение всех функций?


Заранее спасибо

Последний раз редактировалось Bargest, 25.06.2012 в 20:51.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:04.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter