C# 用MOQ测试控制器
我在为我的一个控制器操作编写单元测试时遇到问题。以下是详细情况 此视图是强类型的:C# 用MOQ测试控制器,c#,asp.net-mvc,unit-testing,moq,C#,Asp.net Mvc,Unit Testing,Moq,我在为我的一个控制器操作编写单元测试时遇到问题。以下是详细情况 此视图是强类型的: Inherits="System.Web.Mvc.ViewPage<IEnumerable<Request>>" 以下是测试(nUnit,MOQ)的摘录,它给我带来了问题: //mockRequestRepository // .Setup(repo => repo.GetAll(It.IsAny<int>())) // .Retur
Inherits="System.Web.Mvc.ViewPage<IEnumerable<Request>>"
以下是测试(nUnit,MOQ)的摘录,它给我带来了问题:
//mockRequestRepository
// .Setup(repo => repo.GetAll(It.IsAny<int>()))
// .Returns(List<Request>());
//mockRequestRepository
// .Setup(repo => repo.GetAll(It.IsAny<int>()))
// .Returns(IList<Request>());
//mockRequestRepository
// .Setup(repo => repo.GetAll(It.IsAny<int>()))
// .Returns(IEnumerable<List<Request>>());
mockRequestRepository
.Setup(repo => repo.GetAll(It.IsAny<int>()))
.Returns(It.IsAny<List<Request>>());
我认为这与此无关,但该方法上有两个重载:GetAll()和GetAll(int UserId)。我确信它与列表中的OrderBy有关,但我对Func的概念还相当不确定。谢谢你的帮助 试试这个:
mockRequestRepository.Setup(repo => repo.GetAll(It.IsAny<int>()))
.Returns(new List<Request> { /* empty list */ });
mockRequestRepository.Setup(repo=>repo.GetAll(It.IsAny()))
.Returns(新列表{/*空列表*/});
或
mockRequestRepository.Setup(repo=>repo.GetAll(It.IsAny()))
.返回(新列表){
新请求{Prop1=…,PropN=…},
新请求{Prop1=…,PropN=…},
...
});
您也可以与最低起订量一起使用
_repository.Setup(rep => rep.GetAll(It.IsAny<int>())) // <-- Moq magic
.Returns(
Builder<Request>.CreateListOfSize(10).Build() // <-- NBuilder magic
);
\u repository.Setup(rep=>rep.GetAll(It.IsAny()))//
InnerException {"Value cannot be null.\r\nParameter name: source"}
System.Exception {System.ArgumentNullException}
mockRequestRepository.Setup(repo => repo.GetAll(It.IsAny<int>()))
.Returns(new List<Request> { /* empty list */ });
mockRequestRepository.Setup(repo => repo.GetAll(It.IsAny<int>()))
.Returns(new List<Request> {
new Request { Prop1 = ..., PropN = ... },
new Request { Prop1 = ..., PropN = ... },
...
});
_repository.Setup(rep => rep.GetAll(It.IsAny<int>())) // <-- Moq magic
.Returns(
Builder<Request>.CreateListOfSize(10).Build() // <-- NBuilder magic
);