在我的控制器中,我有一行像这样的代码
string method = HttpContext.Request.HttpMethod;
并且基于它是GET
还是POST
,方法正在执行我想要测试的不同内容。但首先我应该能够嘲笑这个。我们正在使用 NSubstitute 。
我做了一些研究,我发现最接近的是这个答案,但没有一个人使用 NSubstitue 。
Mocking Asp.net-mvc Controller Context
感谢任何帮助。
答案 0 :(得分:1)
因此我们可以使用:
创建模拟var foo = Substitute.For<IFoo>();
Returns
我们可以使用// Make HttpMethod property return "GET"
foo.HttpMethod.Returns("GET");
// Make someOtherMock.GetFoo() return foo
someOtherMock.GetFoo().Returns(foo);
配置成员返回特定值:
var x = new Context(foo, ... );
我们可以将模拟值注入另一个类:
$(document).ready(function() {
$('.classname').change(function() {
if ($(this).is(':checked')) {
alert("hello World");
}
});
});
我认为这是移植linked code examples 1 所需的一切。如果您需要更多信息,请发表评论,我会更新答案。
<小时/> 1 我避免发布完整的翻译,因为它可能因不同的MVC版本而异。希望这个答案可以帮助您移植所需的任何代码片段。