单元测试Monorail的RedirectToReferrer()

时间:2020-03-05 18:53:12  来源:igfitidea点击:

我正在尝试为调用Controller.RedirectToReferrer()方法的操作方法编写单元测试,但收到"无可用引荐来源"消息。

如何隔离和模拟此方法?

解决方案

回答

我们是否考虑过要创建一个双重测试?

回答

在我正在使用的中继版本r5299中,我必须这样做以模拟RedirectToReferrer。我不确定最近的提交中已更改了它,我不确定。

[TestFixture]
public class LoginControllerTests : GenericBaseControllerTest<LoginController>
{
    private string referrer = "http://www.example.org";
    protected override IMockRequest BuildRequest()
    {
        var request = new StubRequest(Cookies);
        request.UrlReferrer = referrer;

        return request;
    }

    protected override IMockResponse BuildResponse(UrlInfo info)
    {
        var response = new StubResponse(info,
                                        new DefaultUrlBuilder(),
                                        new StubServerUtility(),
                                        new RouteMatch(),
                                        referrer);
        return response;
    }

等等等

奇怪的是,我们需要调动Response才能使RedirectToReferrer正常工作。我不得不四处搜寻单轨铁路资源。