Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


4.2.3. Пример интеграционного тестирования

Продемонстрируем тестирование взаимодействий на примере взаимодействия класса TCommandQueue и класса TCommand. Как и при модульном тестировании разработаем спецификацию тестового случая (Таблица 6).

Таблица 6. Спецификация тестового случая для интеграционного тестирования

Названия взаимодействующих классов:

TCommandQueue, TCommand

Название теста: TCommandQueueTest1

Описание теста. Тест проверяет возможность создания объекта типа TCommand и добавления его в очередь при вызове метода AddCommand

Начальные условия: очередь команд пуста

Ожидаемый результат: в очередь будет добавлена одна команда

На основе этой спецификации разработан тестовый драйвер - класс TCommandQueueTester, который наследуется от класса Tester (п. 4.1.4).

Класс содержит следующий конструктор, в котором создаются объекты классов TStore, TterminalBearing и объект типа TcommandQueue;

public TCommandQueueTester() {
         TB = new TTerminalBearingO;
         S = new TStore();
CommandQueue=new TCommandQueue(S,TB);
S.CommandQueue=CommandQueue;
}

И методы, реализующие тесты. Каждый тест реализован в отдельном методе.

1. Метод Run, в котором вызываются методы тестов.

2. Метод dump, который сохраняет в log-файле теста информацию обо всех командах, находящихся в очереди в формате <N : CommandName> - <номер позиции в очереди: полное название команды>.

3. Точка входа в программу - метод Main, в котором происходит создание экземпляра класса TCommandQueueTester.

Теперь создадим тест, который проверяет, создается ли объект типа TCommand, и добавляется ли команда в конец очереди.

private void TCommandQueueTest1() {
         LogMessage(/////// TCommandQueue Test1 /////////////");
         LogMessage("Проверяем, создается ли объект типа TCommand");
// В очереди нет команд
         dump();
// Добавляем команду
// параметр = -1 означает, что команда должна быть добавлена в конец очереди
         CommandQueue.AddCommand(TCommand.GetR, 0, 0, 0,
new TBearingParam(), new TAxleParam(),-1);
         LogMessage("Command added");
// В очереди одна команда
         dump();
}

В класс включены еще два разработанных теста.

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

//////////////////// TCommandQueue Test1 //////////////////
Проверяем, создается ли объект типа TCommand
0 commands in command queue Command added
1 commands in command queue
0: ПОЛУЧИТЬ ИЗ ВХОДНОЙ ЯЧЕЙКИ

 



<< ПредыдущаяОглавлениеСледующая >>