Progetto di esempio per la creazione di unit test
Questo codice di esempio viene fornito per le procedure dettagliate seguenti:
Procedura dettagliata: creazione ed esecuzione di unit test per codice gestito.Questa procedura dettagliata descrive i passaggi per creare e personalizzare gli unit test, eseguirli ed esaminare i risultati dei test.
Procedura dettagliata: eseguire test e visualizzare il code coverage.Questa procedura dettagliata illustra come visualizzare i dati di code coverage, che mostrano la percentuale di codice del progetto che si sta testando.
Procedura dettagliata: Uso dell'utilità di test della riga di comando.In questa procedura dettagliata è possibile usare l'utilità della riga di comando MSTest.exe per eseguire test e visualizzare i risultati.
Codice di esempio
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.
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; // intentionally incorrect code
}
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 usare 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 per codice gestito.
Vedere anche
Attività
Procedura dettagliata: creazione ed esecuzione di unit test per codice gestito
Procedura dettagliata: Uso dell'utilità di test della riga di comando
Altre risorse
Procedura dettagliata: eseguire test e visualizzare il code coverage