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# 单元测试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()

*我正在对一个类进行单元测试,该类有一个特定的IF语句,该语句要求我的请求为POST,而isAjaxRequest为true才能进入特定的块。我已经设置了POST部分,但是如果没有失败,我似乎无法设置标题使其成为AJAX请求*

对于单元测试,您可以模拟isAjaxRequest()方法以进入所需的块。就我个人而言,我使用它是为了达到这样的目的,因为它允许模拟静态方法。看一看:

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