Пример проекта для создания модульных тестов

Пример "Woodgrove Bank" содержит код, на основании которого можно выполнить построение простой программы.Затем можно создать модульные тесты для тестирования различных методов (как открытых, так и закрытых) программы Woodgrove Bank.

Этот пример кода предназначен для использования в следующих пошаговых руководствах.

Примечание. Единственная умышленно допущенная в этом примере ошибка заключается в том, что у метода 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.Выполните шаги в разделе "Подготовка к выполнению пошагового руководства" в руководстве Пошаговое руководство. Создание и запуск модульных тестов для управляемого кода.

См. также

Задачи

Пошаговое руководство. Создание и запуск модульных тестов для управляемого кода

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

Другие ресурсы

Пошаговое руководство. Запуск тестов и просмотр покрытия кода