「Invite」という名前のメソッドを持つ「UserController」という名前のコントローラーがあります。私のコントローラーには、次のオーバーライドメソッドがあります。
DBRepository _repository;
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
_repository = new DBRepository();
}
したがって、このメソッドは UserController クラスが作成されるたびに呼び出されます。
私のメソッド「Invite」には次の行があります。
var startTime = _repository.Get<AllowedTime>(p => p.TimeID == selectTimeStart.Value);
しかし、Unitメソッドを介してこのメソッドを呼び出そうとすると:
[TestMethod()]
[UrlToTest("http://localhost:6001/")]
public void InviteTest()
{
UserController target = new UserController(); // TODO: Initialize to an appropriate value
int? selectTimeStart = 57;
int? selectTimeEnd = 61;
Nullable<int> selectAttachToMeeting = new Nullable<int>(); // TODO: Initialize to an appropriate value
int InvitedUserID = 9; // TODO: Initialize to an appropriate value
UserInviteModel model = new UserInviteModel();
model.Comment = "BLA_BLA_BLA";
ActionResult expected = null; // TODO: Initialize to an appropriate value
ActionResult actual;
actual = target.Invite(selectTimeStart, selectTimeEnd, selectAttachToMeeting, InvitedUserID, model);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Verify the correctness of this test method.");
}
「参照が設定されていません...」というエラーが表示されました。なぜそれが起こるのか理解しています (私の場合は Initialize メソッドが呼び出されないため、_repository は null ですが、正しく行うにはどうすればよいですか?