NUnitの属性の指定
NUnitの属性の指定の仕方を調べたので簡単にメモ
TestFixture, Test
一番の基本。TestFixtureでテストコードとなるクラスを指定し、Testにテストメソッドを指定する。
[TestFixture] public class TestClass { [Test] public void Test1() { // なんかテスト } }
SetUp, TearDown
テストメソッドの実行前、実行後に必ず行われる処理を指定する。
[TestFixture] public class TestClass { [SetUp] public void Init() { // 初期化処理 } [TearDown] public void Terminate() { // 終了処理 } [Test] public void Test1() { // なんかテスト } [Test] public void Test2() { // なんかテスト } }
上記の場合、以下の順に実行される
- Init()
- Test1()
- Terminate()
- Init()
- Test2()
- Terminate()
TestFixtureSetUp, TestFixtureTearDown
全てのテストメソッドの実行前、実行後に行われる処理を指定する。
全てのテストに共通する初期化処理、終了処理を行うときに使用する。
[TestFixture] public class TestClass { [TestFixtureSetUp] public void Init() { // 初期化処理 } [TestFixtureTearDown] public void Terminate() { // 終了処理 } [Test] public void Test1() { // なんかテスト } [Test] public void Test2() { // なんかテスト } }
上記の場合、以下の順に実行される
- Init()
- Test1()
- Test2()
- Terminate()
SetUpFixture
その名前空間内のTestFixtureの実行前、実行後に行われる処理を記述する。
この属性を指定したクラスでは、SetUp、TearDownしかNUnitの属性を指定できない。
namespace Test { [SetUpFixture] public class SetUpClass { [SetUp] public void Init() { // 初期化処理 } [TearDown] public void Terminate() { // 終了処理 } } [TestFixture] public class TestClass1 { [SetUp] public void Init() { // 初期化処理 } [TearDown] public void Terminate() { // 終了処理 } [Test] public void Test() { // なんかテスト } } [TestFixture] public class TestClass2 { [SetUp] public void Init() { // 初期化処理 } [TearDown] public void Terminate() { // 終了処理 } [Test] public void Test() { // なんかテスト } } }
上記の場合、以下の順に実行される
- SetUpClass.Init()
- TestClass1.Init()
- TestClass1.Test()
- TestClass1.Terminate()
- TestClass2.Init()
- TestClass2.Test()
- TestClass2.Terminate()
- SetUpClass.Terminate()