Поделиться через


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

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

См. также

Задачи

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

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

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