【发布时间】:2016-01-07 12:52:49
【问题描述】:
我是单元测试的新手。我正在使用 Moq 进行单元测试。我有一种情况,我必须在同一部分模拟两种不同的方法:
我有一个如下的操作方法:
public ActionResult Login(someparameters)
{
//code...
var user = userRepository.SelectAllUserByEmail(someparamters); //first method
//....
var userDetails = userRepository.ValidateUser(someparameters);//second method
}
这是我的单元测试部分:
userrepositoryMock.Setup(r => r.SelectAllUserByEmail(someparameters))
.Returns(new List<User>() { new User { Salt = strSalt, FundraiserAdminId = fundadmind, StatusCode = statusCode, UserTypeId = userTypeId, HomePageURL = homepageURL, OrganizationId = organizationId } } );
userrepositoryMock.Setup(k => k.ValidateUser(someparamters))
.Returns(new User { Salt = strSalt, FundraiserAdminId = fundadmind, StatusCode = statusCode, UserTypeId = userTypeId, HomePageURL = homepageURL, OrganizationId = organizationId });
但这只会模拟SelectAllUserByEmail 的ValidateUser 方法,它返回null。
【问题讨论】:
-
你应该检查传递给方法参数的参数
标签: asp.net-mvc unit-testing moq