gpt4 book ai didi

asp.net-mvc - HttpFileCollectionBase : Mocking Count-Property

转载 作者:行者123 更新时间:2023-12-02 08:55:06 26 4
gpt4 key购买 nike

我尝试模拟 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
};

如您所见,我创建了一个模拟的 HttpRequest,并将其注入(inject)到被测试的系统中。 Count-Property 被定义为返回 1 - 但它始终返回 0。我使用的是 Moq。

我做错了什么?

最佳答案

斯科特·汉塞尔曼 blogged about this 。问题在于以下行:

fakedRequest.SetupGet(x => x.Files[0]).Returns(fakedFile.Object);

尝试这样,它应该可以工作:

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);

关于asp.net-mvc - HttpFileCollectionBase : Mocking Count-Property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6729454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com