СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Тестирование ИС Практическая работа №16

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Тестирование ИС Практическая работа №16»

Практическое занятие № 16

Тема: «Создание и запуск модульных тестов»

Цель работы: получение практических навыков создания, запуска и настройки набора модульных тестов с помощью платформы модульных тестов Майкрософт для управляемого кода и обозревателя тестов Visual Studio.

Получение практических навыков создания проекта C#, находящегося в стадии разработки, создания тестов для проверки его кода, запуска тестов и изучения результатов.


Краткие теоретические сведения Создайте проект для тестирования
  1. Запустите Visual Studio.

  2. В меню Файл выберите Создать Проект. Откроется диалоговое окно Новый проект .

  3. В разделе Visual C# .NET Core выберите шаблон проекта Консольное приложение (.NET Core) .

  4. Присвойте проекту имя Bank и нажмите кнопку ОК.

Будет создан проект Bank. Он отобразится в обозревателе решений, а его файл Program.cs

откроется в редакторе кода. Примечание

Если файл Program.cs не откроется в редакторе, дважды щелкните Program.cs в обозревателе решений, чтобы открыть его.

  1. Замените содержимое файла Program.cs следующими кодом на C#, который определяет класс BankAccount:

C#

using System;

namespace BankAccountNS

{

///

/// Bank account demo class.

///

public class BankAccount

{

private readonly string m_customerName; private double m_balance;

private BankAccount() { }


public BankAccount(string customerName, double balance)

{

m_customerName = customerName; m_balance = balance;

}


public string CustomerName

{

get { return m_customerName; }

}

public double Balance

{

get { return m_balance; }

}

public void Debit(double amount)

{

if (amount m_balance)

{

throw new ArgumentOutOfRangeException("amount");

}


if (amount 0)

{

throw new ArgumentOutOfRangeException("amount");

}


m_balance += amount; // intentionally incorrect code

}

public void Credit(double amount)

{

if (amount 0)

{

throw new ArgumentOutOfRangeException("amount");

}


m_balance += amount;

}

public static void Main()

{

BankAccount ba = new BankAccount("Mr. Bryan Walton", 11.99);


ba.Credit(5.77);

ba.Debit(11.22);

Console.WriteLine("Current balance is ${0}", ba.Balance);

}

}

}

  1. Переименуйте файл в BankAccount.cs, щелкнув его правой кнопкой мыши и выбрав команду Переименовать в обозревателе решений.

  2. В меню Сборка выберите Собрать решение.

Теперь у вас есть проект с методами, которые можно протестировать. В этой статье тестирование проводится на примере метода Debit. Метод Debit вызывается, когда денежные средства

снимаются со счета.

Создание проекта модульного теста
  1. В меню Файл выберите Добавить Создать проект.

Совет

В обозревателе решений щелкните решение правой кнопкой мыши и выберите пункты

Добавить Создать проект.
  1. В диалоговом окне Новый проект разверните узлы Установленные и Visual C# и выберите

Тест.
  1. В списке шаблонов выберите Тестовый проект MSTest (.NET Core) .

  2. В поле Имя введите BankTests, а затем нажмите кнопку ОК. Проект BankTests добавляется в решение Банк.

  3. В проекте BankTests добавьте ссылку на проект Банк.

В обозревателе решений щелкните Зависимости в проекте BankTests, а затем выберите в контекстном меню Добавить ссылку.

  1. В диалоговом окне Диспетчер ссылок разверните Проекты, выберите Решение и выберите элемент Банк.

  2. Нажмите кнопку ОК. Создание тестового класса

Создание тестового класса, чтобы проверить класс BankAccount. Можно использовать UnitTest1.cs, созданный в шаблоне проекта, но лучше дать файлу и классу более описательные имена.

Переименуйте файл и класс
  1. Чтобы переименовать файл, в обозревателе решений выберите файл UnitTest1.cs в проекте BankTests. В контекстном меню выберите команду Переименовать, а затем переименуйте файл в BankAccountTests.cs.

  2. Чтобы переименовать класс, выберите Да в открывшемся диалоговом окне, предлагающем также переименовать ссылки на элемент кода.

Файл BankAccountTests.cs теперь содержит следующий код: C#

using Microsoft.VisualStudio.TestTools.UnitTesting;


namespace BankTests

{

[TestClass]

public class BankAccountTests

{

[TestMethod]

public void TestMethod1()

{

}

}

}

Добавьте оператор using

Можно также добавить оператор using в класс, чтобы тестируемый проект можно было вызывать без использования полных имен. Вверху файла класса добавьте:

C#

using BankAccountNS;

Требования к тестовому классу

Минимальные требования к тестовому классу следующие:

  • Атрибут [TestClass] является обязательным в любом классе, содержащем методы модульных тестов, которые необходимо выполнить в обозревателе тестов.

  • Каждый метод теста, предназначенный для запуска в обозревателе тестов, должен иметь атрибут [TestMethod].

Можно иметь другие классы в проекте модульного теста, которые не содержат атрибута [TestClass] , а также иметь другие методы в тестовых классах, у которых атрибут — [TestMethod] . Можно вызывать эти другие классы и методы в методах теста.

Создание первого тестового метода

В этой процедуре мы напишем методы модульного теста для проверки поведения метода Debit класса BankAccount.

Существует по крайней мере три поведения, которые требуется проверить:

  • Метод создает исключение ArgumentOutOfRangeException , если сумма по дебету превышает баланс.

  • Метод создает исключение ArgumentOutOfRangeException, если сумма по дебету меньше нуля.

  • Если значение дебета допустимо, то метод вычитает сумму дебета из баланса счета. Совет

Метод по умолчанию TestMethod1 можно удалять, так как он не используется в этом руководстве.

Создание метода теста

Первый тест проверяет, снимается ли со счета нужная сумма при допустимом размере кредита (со значением меньшим, чем баланс счета, и большим, чем ноль). Добавьте следующий метод в этот класс BankAccountTests :

C#

[TestMethod]

public void Debit_WithValidAmount_UpdatesBalance()

{

// Arrange

double beginningBalance = 11.99; double debitAmount = 4.55; double expected = 7.44;

BankAccount account = new BankAccount("Mr. Bryan Walton", beginningBalance);


// Act account.Debit(debitAmount);


// Assert

double actual = account.Balance;

Assert.AreEqual(expected, actual, 0.001, "Account not debited correctly");

}



Метод очень прост: он создает новый объект BankAccount с начальным балансом, а затем снимает допустимое значение. Он использует метод Assert.AreEqual, чтобы проверить, что конечный

баланс соответствует ожидаемому.

Требования к методу теста

Метод теста должен удовлетворять следующим требованиям:

  • Он декорируется атрибутом [TestMethod].

  • Он возвращает void.

  • Он не должен иметь параметров.

Сборка и запуск теста
  1. В меню Построение выберите Построить решение.

  2. Откройте Обозреватель тестов, выбрав Тест Windows Обозреватель тестов в верхней строке меню.

  3. Выберите Запустить все , чтобы выполнить тест.

Во время выполнения теста в верхней части окна Обозреватель тестов отображается

анимированная строка состояния. По завершении тестового запуска строка состояния становится зеленой, если все методы теста успешно пройдены, или красной, если какие-либо из тестов не пройдены.

В данном случае тест пройден не будет.

  1. Выберите этот метод в обозревателе тестов для просмотра сведений в нижней части окна.

Исправление кода и повторный запуск тестов

Результат теста содержит сообщение, описывающее возникшую ошибку. Для метода AreEqual выводится сообщение о том, что ожидалось и что было фактически получено. Ожидалось, что баланс уменьшится, а вместо этого он увеличился на сумму списания.

Модульный тест обнаружил ошибку: сумма списания добавляется на баланс счета, вместо того чтобы вычитаться.

Исправление ошибки

Чтобы исправить эту ошибку, в файле BankAccount.cs замените строку: C#

m_balance += amount;

на:

C#

m_balance -= amount;

Повторный запуск теста

В обозревателе тестов выберите Запустить все, чтобы запустить тест повторно. Красно-зеленая строка становится зеленой, чтобы указать, что тест был пройден.



Оборудование, материалы

Персональный компьютер с установленной ОС. Текстовый редактор. MS Visual Studio.


Порядок выполнения задания
  1. Изучить краткие теоретические сведения.

  2. Выполнить приведённые в тексте задания.


Источники

https://docs.microsoft.com/ru-ru/visualstudio/test/walkthrough-creating-and-running-unit-tests-for- managed-code?view=vs-2017