将 AcceptType 添加到 HttpRequestBase 的 Mock
Add AcceptType to Mock of HttpRequestBase
这里是一个简单的问题。我正在尝试模拟 HttpRequestBase 并添加两个 AcceptTypes。
我认为这是方法,但事实并非如此,谷歌搜索/四处挖掘并没有向我透露任何信息。
var request = new Mock<HttpRequestBase>();
request.Setup(p => p.HttpMethod).Returns("POST");
request.Setup(a => a.Headers.Add("AcceptType", "ABC"));
request.Setup(z => z.Headers.Add("AcceptType", "QWE"));
编辑
根据 dee 的回答,我明白了我是如何误解 Mock setup / Returns 组合的。
所以我的最终答案如下所示,但完全由给出的答案得出。
new string[] fakeHeaders = new string[]
{ "ABC","QWE" };
Mock<HttpRequestBase> requestBaseMock = new Mock<HttpRequestBase>();
requestBaseMock.Setup(r => r.HttpMethod).Returns("POST");
requestBaseMock.Setup(r => r.Headers).Returns(fakeHeaders);
您是否尝试过先从 Setup
中创建 假 headers collection 然后 return 12=]?
NameValueCollection fakeHeaders = new NameValueCollection();
fakeHeaders.Add("AcceptType", "ABC");
fakeHeaders.Add("AcceptType", "QWE");
Mock<HttpRequestBase> requestBaseMock = new Mock<HttpRequestBase>();
requestBaseMock.Setup(r => r.HttpMethod).Returns("POST");
requestBaseMock.Setup(r => r.Headers).Returns(fakeHeaders);
这里是一个简单的问题。我正在尝试模拟 HttpRequestBase 并添加两个 AcceptTypes。
我认为这是方法,但事实并非如此,谷歌搜索/四处挖掘并没有向我透露任何信息。
var request = new Mock<HttpRequestBase>();
request.Setup(p => p.HttpMethod).Returns("POST");
request.Setup(a => a.Headers.Add("AcceptType", "ABC"));
request.Setup(z => z.Headers.Add("AcceptType", "QWE"));
编辑
根据 dee 的回答,我明白了我是如何误解 Mock setup / Returns 组合的。
所以我的最终答案如下所示,但完全由给出的答案得出。
new string[] fakeHeaders = new string[]
{ "ABC","QWE" };
Mock<HttpRequestBase> requestBaseMock = new Mock<HttpRequestBase>();
requestBaseMock.Setup(r => r.HttpMethod).Returns("POST");
requestBaseMock.Setup(r => r.Headers).Returns(fakeHeaders);
您是否尝试过先从 Setup
中创建 假 headers collection 然后 return 12=]?
NameValueCollection fakeHeaders = new NameValueCollection();
fakeHeaders.Add("AcceptType", "ABC");
fakeHeaders.Add("AcceptType", "QWE");
Mock<HttpRequestBase> requestBaseMock = new Mock<HttpRequestBase>();
requestBaseMock.Setup(r => r.HttpMethod).Returns("POST");
requestBaseMock.Setup(r => r.Headers).Returns(fakeHeaders);