public async Task Login_GivenModelStateInvalid_ReturnLoginView() { _controller.ModelState.AddModelError("Test", "Test"); var result = await _controller.Login(Mock.Of <LoginViewModel>()) as ViewResult; Assert.Equal("Login", result.ViewName, ignoreCase: true); }
public async Task Login_GivenModelStateInvalid_ReturnLoginView() { _controller.ModelState.AddModelError("Test", "Test"); //这里直接认定有错误, var result = await _controller.Login(Mock.Of <LoginViewModel>()) as ViewResult; //Mock.Of<LoginViewModel>()会帮我们创建一个LoginViewModel的实例,类似new。as对引用类型进行转换,无法转换时返回null而非抛出异常 Assert.Equal("Login", result.ViewName, ignoreCase: true); }
public async Task Login_ModelStateInvalid_ReturnModelView() { //to check modelstate is valid, add some error mo the modelstate _controller.ModelState.AddModelError("Test", "Test"); //v1 //var model = new Mock<LoginViewModel>(); //var result = _controller.Login(model.Object); //v2 var result = await _controller.Login(Mock.Of <LoginViewModel>()) as ViewResult; Assert.Equal("Login", result.ViewName, ignoreCase: true); }