Dan*_*iel 5 tdd asp.net-mvc moq
我尝试模拟HttpFileCollectionBase实例的Count-Property - 但不知何故它不起作用.
var fakedRequest = new Mock<HttpRequestBase>();
var fakedFile = new Mock<HttpPostedFileBase>();
fakedFile.SetupGet(x => x.InputStream).Returns(inputStream);
var fakedFileCollection = new Mock<HttpFileCollectionBase>();
fakedFileCollection.SetupGet(x => x.Count).Returns(1);
fakedRequest.SetupGet(x => x.Files).Returns(fakedFileCollection.Object);
fakedRequest.SetupGet(x => x.Files[0]).Returns(fakedFile.Object);
var sut = new TestableExploreController(null, fakedTemporaryStorageRepository.Object)
{
HttpRequest = fakedRequest.Object
};
Run Code Online (Sandbox Code Playgroud)
如你所见,我创建了一个模拟的HttpRequest,我将其注入到被测系统中.Count-Property被定义为返回1 - 但它总是返回0.我正在使用Moq.
我究竟做错了什么?
Dar*_*rov 13
Scott Hanselman 在此博文中写道.问题是以下几行:
fakedRequest.SetupGet(x => x.Files[0]).Returns(fakedFile.Object);
Run Code Online (Sandbox Code Playgroud)
尝试这样,它应该工作:
var fakedRequest = new Mock<HttpRequestBase>();
var fakedFile = new Mock<HttpPostedFileBase>();
fakedFile.SetupGet(x => x.InputStream).Returns(inputStream);
var fakedFileCollection = new Mock<HttpFileCollectionBase>();
fakedFileCollection.SetupGet(x => x.Count).Returns(1);
fakedFileCollection.SetupGet(x => x[0]).Returns(fakedFile.Object);
fakedRequest.SetupGet(x => x.Files).Returns(fakedFileCollection.Object);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |