NUnitについては、前に説明したので、そちらを参照してください。
NUnitでは、簡単に例外処理のテストを行える。
今回は、簡単な例外のテストコードを作成した。
下記は、テスト対象のコード
using System;
namespace Sample.Test
{
///
/// テスト対象クラス
///
class Sample
{
public void CallException()
{
throw new SampleException("例外", 1000);
}
}
///
/// 自作の例外クラス
///
class SampleException : Exception
{
public int ErrCode { get; set; }
public SampleException(string massage, int code)
: base(massage)
{
this.ErrCode = code;
}
}
}
下記は、テストのプログラム
using System;
using NUnit.Freamwork;
namespace Sample.Test
{
///
/// テスト
///
[TestFixture]
public class TestCode
{
///
/// Assert.Throwを使用して例外テスト
/// NUnit2.5から追加された機能
/// 2.5以前とは違い、属性を付加しないでよい。
///
[Test]
public void Test()
{
ver ex = Assert.Throw
{
Sample sample = new Sample();
sample.CallException();
});
Assert.AreEqual("例外", ex.Message);
Assert.AreEqual(1000, ex.ErrCode);
}
///
/// 従来の例外テスト
/// Messageの比較はできるが、複雑なことができない。
/// ErrCodeの比較が出来ないかも?(ErrCodeを比較するとTest_2)
///
[Test]
[ExpectedException(typeof(SampleException), ExpectedMessage="例外")]
public void Test_1()
{
Sample sample = new Sample();
sample.CallException();
}
///
/// 従来の例外テスト
///
[Test]
public void Test_2()
{
string message="";
int code=0;
try
{
Sample sample = new Sample();
sample.CallException();
}
catch(SampleException ex)
{
message = ex.Message;
code = ex.ErrCode;
}
Assert.AreEqual("例外", message );
Assert.AreEqual(1000, code );
}
}
}
従来の例外テストより簡単に例外のテストコードを作成出来るようになっているので
Assert.Throwを使用してテスト行ってみてほしい。
では、稲刈りで忙しいので、さようなら。
@some