Nunitユニットテスト


ユニットテストとは:
プログラム設計の過程で多くのテストがあり、ユニットはその中の1つにすぎず、ユニットテストはプログラムが完璧であることを保証することはできないが、すべてのテストの中で、ユニットテストは第1の一環であり、最も重要な一環でもある.ユニットテストはプログラマーが自分でテストする仕事です.簡単に言えば、ユニットテストは、コード作成者が想定した方法で実行して予想される結果が得られたかどうかをテストすることである.ユニットテストの重要性についてはすでに多くの文章が深く分析されており、ここでは後述しない.
NUnitはNetのために準備された自動化ユニットテストフレームワークであり、その役割はユニットテストの作業を容易に完成させることであり、有名なJUnitと同じようにxUnit家族のメンバーである.ダウンロード先は次のとおりです.
http://www.nunit.org.
先行テスト:
「なに?テストを先に書くの?」君はきっと驚いたに違いない.まずテストコードを作成し、限界プログラミング(XP)の理論に従って、テストを書くことはソフトウェアを設計する過程であり、その重要性は実際に機能を完成するコードを超えている.まずテストを書き終わってからコードを完成させ、すべてのテストが合格した日、つまりプログラムが完成した時です.
まず、nunitが提供するnunit.framework.dllファイルをプロジェクトに導入し、TicketTestというクラスを作成します.
[TestFixture]
	public class TicketTest
	{
		[Test]
		public void Add()
		{
			Ticket ticket = new Ticket();
			ticket.Add(100);
			Assertion.AssertEquals(100, ticket.Amount);
		}
	}

なお、[TestFixture]と[Test]の2つのAttributeはNUnitで規定されている追加する必要があります.これにより、テストフレームワークは、どのクラスまたはメソッドがテストする必要があるかを知ることができます.
Addメソッドでticketオブジェクトを定義し、100枚のチケットを追加して使用できます.
Assertion.AssertEquals(100, ticket.Amount);
チケットのAmountプロパティが100であるかどうかをテストします.
次に、TicketTestにSellをテストする方法を追加します.
[Test]
		public void Sell()
		{
			Ticket ticket = new Ticket();
			ticket.Add(100);
			ticket.Sell();
			ticket.Sell();
			ticket.Sell();
			Assertion.AssertEquals(97, ticket.Amount);
		}

ここでは、まず100枚の切符を追加してから、一気に3枚を売って、97枚の切符が残っているかどうか見てみましょう.
はい、この2つの方法のテストはもう終わりました.テストの結果を見てみましょう.要求に応じて、次のコードを書きました.
public class Ticket
	{
		private int amount;
		public int Amount
		{
			get
			{
				return amount;
			}
		}

		public void Add(int num)
		{
		}

		public void Sell()
		{
		}
}

このコードはクラスの構造を完成させるためだけに,メソッドの実装が一時的に空になっていることに注意する.その後、このコードをdll動的接続ライブラリファイル:UnitTestにコンパイルします.dll.
NUnitのグラフィックテストツールを実行し、コンパイルしたdllファイルを開き、「Run」ボタンを押すと、次の画面が表示されます.
目立つ赤色は、テストが成功しなかったことを示していますが、これは私たちの予想通りです.
次に、先ほどのTicketクラスでAddメソッド実装コードを完了します.
public void Add(int num)
{
amount += num;
}
保存、再コンパイル.
NUnitに切り替え、Runを再クリックすると、次のように表示されます.
Addメソッドは緑に変わり、Sellメソッドも完了しました.
public void Sell()
{
amount -= 1;
}
さらにテストすると、結果は次のようになります.
ああ、なんとか美しい緑になってきましたが、皆さんは今環境保護の重要性を実感しているでしょう.:)
では、任務を任せてもいいですか.待って、焦らないで、もう一つ異常がテストされていません.もし私たちのAmountが0より小さいと、異常が発生します.では、異常はどのようにテストしますか.引き続きご覧ください.
テスト異常:
やはり上記と同じように、まずテストコードを書きます.
[Test]
	[ExpectedException(typeof(Exception))]
	public void ExcpetionTesting()
	{
		Ticket ticket = new Ticket();
		ticket.Add(3);
		ticket.Sell();
		ticket.Sell();
		ticket.Sell();
		ticket.Sell();
	}

ここで、[ExpectedException(typeof(Exception)]は、発生した異常をキャプチャしたいことを示し、異常がキャプチャされていない場合はテストに失敗したことを示します.
后ろのコードはよく理解して、私达は3枚の切符をプラスして、4枚売って、これは株を売るのではありませんて、后で平仓することができません.:)
コンパイル実行では、次のテスト画面が表示されます.
Ticketクラスでは、Sellメソッドを次のように変更します.
public void Sell()
{
if(amount - 1 < 0)
throw new Exception(「Amountは0にできない」);
amount -= 1;
}
コンパイル、再テストの結果は次のとおりです.
さて、ここまで来たら、私たちのユニットテストの旅が終わっても、C#でユニットテストを行う方法について基本的な認識があるに違いありません.また、NUnitはC#だけを対象にしているわけではありません.実際には、あなたは何でもいいです.Net言語ではNUnitを使用してあなたのユニットをテストします.方法は同じです.
まとめ:
ユニットテストは少し面倒に見えますが、プログラマーに安全な観点を提供し、プログラマーに自分のプログラムに自信を持たせ、開発後期の頻繁なデバッグにかかる時間を減らすと同時にアプリケーションに最初の安全防護網を提供します.そのため、ユニットテストは開発効率とソフトウェア品質を高める重要な手段です.
UNintを利用して、私たちは.Netプログラミングの過程で非常に便利なユニットテストを行い、その図形化されたインターフェースと簡単で強力なテストフレームワークは私たちに非常に快適で面白いテスト環境を提供し、プログラマーにユニットテストを行うのは退屈ではなく、慣れてから楽しみになることができます.
本文を読んで、もしあなたが引用の中のかわいそうなプログラマーであれば、あなたは今きっと簡単にあなたのプロジェクトマネージャーに直面して、安心できるコードの答案を提出することができます.