Пример проекта для создания модульных тестов
Пример "Woodgrove Bank" содержит код, на основании которого можно выполнить построение простой программы. Затем можно создать модульные тесты для тестирования различных методов (как открытых, так и закрытых) программы Woodgrove Bank.
Этот пример кода предназначен для использования в следующих пошаговых руководствах.
Пошаговое руководство. Создание и запуск модульных тестов. Пошаговое руководство по созданию и настройке модульных тестов, их выполнению и изучению результатов.
Пошаговое руководство. Запуск тестов и просмотр покрытия кода. В этом пошаговом руководстве описан порядок просмотра данных о покрытии кода, отображающих тестируемую часть кода проекта.
Пошаговое руководство. Использование программы командной строки для тестирования. В этом пошаговом руководстве при помощи средства командной строки MSTest.exe выполняются тесты и просматриваются результаты.
Примечание. Единственная умышленно допущенная в этом примере ошибка заключается в том, что у метода Debit в "m_balance += amount" вместо знака плюс перед знаком равно должен стоять минус.
Пример кода
Последняя версия кода этого примера доступна здесь:
using System;
namespace BankAccountNS
{
/// <summary>
/// Bank Account demo class.
/// </summary>
public class BankAccount
{
private string m_customerName;
private double m_balance;
private bool m_frozen = false;
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 (m_frozen)
{
throw new Exception("Account frozen");
}
if (amount > m_balance)
{
throw new ArgumentOutOfRangeException("amount");
}
if (amount < 0)
{
throw new ArgumentOutOfRangeException("amount");
}
m_balance += amount;
}
public void Credit(double amount)
{
if (m_frozen)
{
throw new Exception("Account frozen");
}
if (amount < 0)
{
throw new ArgumentOutOfRangeException("amount");
}
m_balance += amount;
}
private void FreezeAccount()
{
m_frozen = true;
}
private void UnfreezeAccount()
{
m_frozen = false;
}
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);
}
}
}
/* Используемые в качестве примеров названия предприятий, организаций и товаров, имена доменов, адреса электронной почты, эмблемы, имена людей, названия мест и событий являются вымышленными. Любые совпадения с реальными предприятиями, организациями, товарами, именами доменов, адресами электронной почты, эмблемами, лицами, местами и событиями являются случайными и непреднамеренными. */
Работа с кодом
Для работы с этим кодом необходимо сначала создать для него проект в Visual Studio. Выполните шаги в разделе "Подготовка к выполнению пошагового руководства" в руководстве Пошаговое руководство. Создание и запуск модульных тестов.
См. также
Задачи
Пошаговое руководство. Создание и запуск модульных тестов
Пошаговое руководство. Запуск тестов и просмотр покрытия кода
Пошаговое руководство. Использование программы командной строки для тестирования