C# 单元测试ajaxc请求# [测试] 公共无效详细信息PromoCodeStatusWithModel() { var sut=_testContext.sut; _httpModelFactory.FakeHttpContext(); var mockHttpContext=MockRepository.GenerateMock(); var mockRequest=MockRepository.GenerateMock(); mockHttpContext.Stub(x=>x.Request).Return(mockRequest); mockRequest.Stub(x=>x.HttpMethod).Return(“POST”); var context=new ControllerContext(mockHttpContext,new RouteData(),sut); sut.ControllerContext=上下文; var viewResult=sut.inquire(sampleinquiryform()); Assert(viewResult!=null,“view!=null”); Assert.NotNull(viewResult); }
*我正在对一个类进行单元测试,该类有一个特定的IF语句,该语句要求我的请求为POST,而isAjaxRequest为true才能进入特定的块。我已经设置了POST部分,但是如果没有失败,我似乎无法设置标题使其成为AJAX请求* 对于单元测试,您可以模拟isAjaxRequest()方法以进入所需的块。就我个人而言,我使用它是为了达到这样的目的,因为它允许模拟静态方法。看一看:C# 单元测试ajaxc请求# [测试] 公共无效详细信息PromoCodeStatusWithModel() { var sut=_testContext.sut; _httpModelFactory.FakeHttpContext(); var mockHttpContext=MockRepository.GenerateMock(); var mockRequest=MockRepository.GenerateMock(); mockHttpContext.Stub(x=>x.Request).Return(mockRequest); mockRequest.Stub(x=>x.HttpMethod).Return(“POST”); var context=new ControllerContext(mockHttpContext,new RouteData(),sut); sut.ControllerContext=上下文; var viewResult=sut.inquire(sampleinquiryform()); Assert(viewResult!=null,“view!=null”); Assert.NotNull(viewResult); },c#,visual-studio,unit-testing,C#,Visual Studio,Unit Testing,*我正在对一个类进行单元测试,该类有一个特定的IF语句,该语句要求我的请求为POST,而isAjaxRequest为true才能进入特定的块。我已经设置了POST部分,但是如果没有失败,我似乎无法设置标题使其成为AJAX请求* 对于单元测试,您可以模拟isAjaxRequest()方法以进入所需的块。就我个人而言,我使用它是为了达到这样的目的,因为它允许模拟静态方法。看一看: [Test] public void DetailPromocodeStatusWithModel()
[Test]
public void DetailPromocodeStatusWithModel()
{
var sut = _testContext.Sut;
_httpModelFactory.FakeHttpContext();
var mockHttpContext = MockRepository.GenerateMock<HttpContextBase>();
var mockRequest = MockRepository.GenerateMock<HttpRequestBase>();
mockHttpContext.Stub(x => x.Request).Return(mockRequest);
mockRequest.Stub(x => x.HttpMethod).Return("POST");
var context = new ControllerContext(mockHttpContext,new RouteData(),sut);
sut.ControllerContext = context;
var viewResult = sut.Enquire(SampleEnquiryForm());
Debug.Assert(viewResult != null, "view != null");
Assert.NotNull(viewResult);
}
[测试方法,隔离]
public void TestIsAjaxRequest()
{
var fake=Isolate.fake.Instance();
隔离.WhenCalled(()=>AjaxRequestExtensions.IsAjaxRequest(null)).WillReturn(true);
IsTrue(AjaxRequestExtensions.IsAjaxRequest(false));
}
希望对您有所帮助。您是否可以添加带有if语句块的代码以及您目前尝试的代码
[TestMethod, Isolated]
public void TestIsAjaxRequest()
{
var fake = Isolate.Fake.Instance<HttpRequestBase>();
Isolate.WhenCalled(() => AjaxRequestExtensions.IsAjaxRequest(null)).WillReturn(true);
Assert.IsTrue(AjaxRequestExtensions.IsAjaxRequest(fake));
}