Condividi tramite


Progetto di esempio per la creazione di unit test

L'esempio "Woodgrove Bank" è un codice per compilare un programma semplice. È possibile in seguito generare degli unit test per verificare vari metodi, sia pubblici che privati, del programma Woodgrove Bank.

Questo codice di esempio viene fornito per le seguenti procedure dettagliate:

Nota   L'unico errore intenzionale di questo esempio è che nel metodo Debit "m_balance += amount" dovrebbe esserci un segno meno e non più prima del segno di uguale.

Codice di esempio

Il codice più aggiornato per questo esempio viene riportato di seguito.

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);
        }

    }
}

/* Ogni riferimento a società, organizzazioni, prodotti, nomi di dominio, indirizzi di posta elettronica, logo, persone, luoghi ed eventi è puramente casuale. Nessuna associazione con nessuna società, organizzazione, prodotto, nome di dominio, indirizzo di posta elettronica, logo, persona, luogo o evento è intenzionale o può essere presupposta. */

Utilizzo del codice

Per utilizzare questo codice, è necessario avere prima creato un progetto apposito in Visual Studio. Completare i passaggi nella sezione "Preparazione per la procedura dettagliata" in Procedura dettagliata: creazione ed esecuzione di unit test.

Vedere anche

Attività

Procedura dettagliata: creazione ed esecuzione di unit test

Procedura dettagliata: eseguire test e visualizzare il code coverage

Procedura dettagliata: utilizzo dell'utilità di test della riga di comando