次の構造の 2 つの基本クラスからコントローラーが派生する MVC プロジェクトがあります。
Global Base Controller
|
|--------------------|
Type1 Type2
| |
|--------------------------------------|
Controller1/Controller2 Controller3/Controller4
DRYプリンシパルに固執するために、controller1/2/3/4でオーバーライドされたメソッドのみをテストするように単体テストをセットアップしたいと思います。これは、テストを に追加するとGlobal Base Controller
、チェーンのさらに下に適用されることを意味します。
NUnit/msTest でこれを達成する最善の方法は何ですか?
次の例のように、テストで同じ構造をたどってみましたが、基本テストは取得されません。
public class ControllerTestClass<T>
{
public class ForThisMethod
{
[Test]
public void WhenThisCondition_HasThisValue()
{
Assert.IsAssignableFrom<T>("");
}
}
}
public class UnitTest2 : ControllerTestClass<String>
{
[TestFixture]
public class ForThisMethod2
{
[Test]
public void WhenThisCondition_HasThisValue()
{
Assert.True(true);
}
}
}
上記の構造では、テスト エクスプローラーに次のように表示されます。
注:この方法でテストするには、新しい機能の開発者が追加のテストを追加する必要があることを知っています。これは問題なく、プロジェクト ノートに書き込まれます。