コントローラー (MVC4) でメソッドの 1 つのテストを作成しようとしています。Moqを使用しています。テスト メソッド内で、次のようにリポジトリのモックを作成します。
Mock<ISurveyRepository> mock = new Mock<ISurveyRepository>();
リポジトリ呼び出しのモックアップに進みます。それらの最初のものは次のとおりです。
int userId = repository.GetUserId(User.Identity.Name);
したがって、これをテストメソッドに追加します。
mock.Setup(y => y.GetUserId("testName")).Returns(1);
残念ながら、このコード行は私に与えます:
System.NullReferenceException: Object reference not set to an instance of an object.
上記の行をコントローラーから削除し、代わりに静的な値 (int userId = 1) を使用すると、テストは正常に完了します。
誰でも理由を教えてもらえますか?