Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MMTPIS_Prakticheskie_zanyatia.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
471 Кб
Скачать
☆

2.3.4. Пример выполнения типового задания

Продемонстрируем тестирование взаимодействий на примере класса TСommandQueue:

public class TCommandQueue : System.Windows.Forms.ListBox

{

public TCommandQueue()

// Добавляет команду в очередь команд на указанную позицию

public void AddCommand(int NameCommand, // Код команды

int Position) // Позиция в очереди

// Удаляет команду из очереди

public void DeleteCommand(int Position)

// Выполняет первую команду в очереди

public void ProcessCommand()

}

Класс реализует очередь FIFO объектов типа TCommand. Наследуется от System.Windows.Forms.ListBox библиотеки .NET. Количество команд в очереди не ограничено.

Операции:

- Конструктор TCommandQueue().

- Операция AddCommand(...) создает объект типа TCommand, присваивает ему переданные параметры и добавляет в очередь команд на указанную позицию. Значение позиции в очереди = -1 означает, что команда будет добавлена в конец очереди.

- Операция DeleteCommand(...) удаляет команду из очереди на указанной позиции.

- Операция ProcessCommand() при наличии команд в очереди посылает первую команду из очереди на выполнение.

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

Для тестирования взаимодействия класса TCommandQueue и класса TСommand, так же, как и при модульном тестировании, разработаем спецификацию тестового случая:

1) Названия взаимодействующих классов: TСommandQueue, Tcommand.

2) Название теста: TCommandQueueTest1.

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

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

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

На основе этой спецификации был разработан тестовый драйвер – класс TCommandQueueTester, который наследуется от класса Tester. Этот класс содержит:

- Метод Init(), в котором создается объект класса TcommandQueue. Этот метод необходимо вызывать в начале каждого теста, чтобы тестируемые объекты создавались вновь:

private void Init()

{

CommandQueue=new TCommandQueue();

}

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

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

- Метод dump(), который сохраняет в log-файле теста информацию обо всех командах, находящихся в очереди в формате: «номер позиции в очереди: полное название команды».

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

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

private void TCommandQueueTest1()

{

Init();

LogMessage("///////// TCommandQueue Test1 /////////////");

LogMessage("Проверяем, создается ли объект типа TCommand");

// В очереди нет команд

dump();

// Добавляем команду

// параметр = -1 означает, что команда должна быть добавлена

//в конец очереди

CommandQueue.AddCommand(1, -1);

LogMessage("Command added");

// В очереди одна команда

dump();

}

Для выполнения этого теста в методе Run() необходимо вызвать метод TCommandQuеueTest1() и запустить программу на выполнение:

private void Run()

{

TCommandQueueTest1();

}

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]