
3 Приклад інтеграційного тестування
Продемонструємо тестування взаємодій на прикладі взаємодії класу TCommandQueue і класу Tсommand, а також, як і при модульному теcтуванні, розробимо специфікацію тестового випадку:
Таблиця 4.2. Специфікація тестового випадку для інтеграційного тестування
Назви взаємодіючих класів: |
TСommandQueue, TCommand |
Назва тесту: |
TCommandQueueTest1 |
Опис тесту: |
тест перевіряє можливість створення об'єкта типу TCommand і додавання його в чергу при виклику методу AddCommand |
Початкові умови: |
черга команд порожня |
Очікуваний результат: |
у чергу буде додана одна команда |
На основі цієї специфікації розроблений тестовий драйвер приклад 6.1 - клас TCommandQueueTester, що успадковується від класу Tester.
Клас містить:
-
конструктор, у якому створюються об'єкти класів TStore, TterminalBearing,об'єкт типу TcommandQueue
-
Методи, що реалізують тести. Кожен тест реалізований в окремому методі.
-
Метод Run, у якому викликаються методи тестів.
-
Метод dump, що зберігає в Log-файлі тесту інформацію про всі команди, що перебувають у черзі у форматі - Номер позиції в черзі: повна назва команди
-
Точку входу в програму - метод Main, у якому відбувається створення екземпляра класу TсommandQueueTester.
public TCommandQueueTester()
{
TB = new TTerminalBearing();
S = new TStore();
CommandQueue=new TCommandQueue(S,TB);
S.CommandQueue=CommandQueue;
...
}
6.1. Об'єкт типу TcommandQueue
TCommandQueueTester::TCommandQueueTester()
{
TB = new TTerminalBearing();
S = new TStore();
CommandQueue=new TCommandQueue(S,TB);
S->CommandQueue=CommandQueue;
}
6.1.1. Об'єкт типу TcommandQueue (C++)
Тепер створимо тест, що перевіряє, чи створюється об'єкт типу Tсommand, і чи додається команда в кінець черги.
private void TCommandQueueTest1()
{
LogMessage("///// TCommandQueue Test1 /////");
LogMessage("Перевіряємо, чи створюється об'єкт типу TCommand");
// У черзі немає команд
dump();
//Додаємо команду: параметр = -1 означає, що команда повинна бути додана в кінець черги
CommandQueue.AddCommand(TCommand.Get,0,0,0,
new TBearingParam(),new TAxleParam(),-1);
LogMessage("Command added");
// У черзі одна команда
dump();
}
6.2. Тест
void TCommandQueueTester::TCommandQueueTest1()
{
LogMessage("///// TCommandQueue Test1 /////");
LogMessage("Перевіряємо, чи створюється об'єкт типу TCommand");
// У черзі немає команд
dump();
//Додаємо команду: параметр = -1 означає, що команда повинна бути додана в кінець черги
CommandQueue.AddCommand(Get,0,0,0,
new TBearingParam(),
new TAxleParam(),-1);
LogMessage("Command added");
// У черзі одна команда
dump();
}
6.2.1. Тест (C++)
У клас включені ще два розроблених тести.
Після завершення тесту варто переглянути текстовий журнал тесту, щоб зрівняти отримані результати з очікуваними результатами, заданими в специфікації тестового випадку TCommandQueueTest1 приклад 6.3.
///// TCommandQueue Test1 /////
Перевіряємо, чи створюється об'єкт типу TCommand
0 commands in command queue
Command added
1 commands in command queue
6.3. Специфікація результатів тесту