私はすべてのテストで同じコントローラー インスタンスを使用していますが、(私のテストは任意の順序で実行されるため) 引数なしで呼び出すと、以前の呼び出しで作成されたものController.View
と同じものが返されることがわかりました。 !ViewDataDictionary
Controller.View
簡単な例 (NUnit と MvcContrib を使用)
<Test()> _
Public Sub Test_A()
Dim r As ViewResult = MockController.MethodWhichReturnsViewData().AssertViewRendered()
Assert.IsNotNull(r.Model)
End Sub
<Test()> _
Public Sub Test_B()
Dim r As ViewResult = MockController.MethodWhichDoesNotReturnViewData().AssertViewRendered()
Assert.IsNull(r.Model) '<==== fails, has the same view data as Test_A!
End Sub
これは私のテストにとっては悪いことです (明らかに)。2つの解決策を想像できますが、どちらも好きではありません。何か提案はありますか? (ボーナスとして、MS がこのように設計した理由を誰でも理解できますか?)
Nothing
へのすべての空の呼び出しのモデルとして明示的に指定します。Controller.View
TestSetUp
モデルをクリアするメソッドを追加