如何使用 fakeiteasy 为包含对 HttpContext 的调用的代码编写 MSpec 测试?

发布于 2024-11-01 09:38:15 字数 278 浏览 5 评论 0原文

我正在扭转众所周知的内裤。对于这个非常简单的代码:

public ActionResult Add()
    {

        this.HttpContext.Items["pm-page-title"] = "Some title";

        return this.View();
    }

如何使用 fakeiteasy 编写 MSpec 测试来验证是否返回了视图,以及更相关的是页面标题是否设置正确?

蒂亚,

大卫

I am getting the proverbial knickers in a twist. For this very simple code:

public ActionResult Add()
    {

        this.HttpContext.Items["pm-page-title"] = "Some title";

        return this.View();
    }

How do I go about writing the MSpec test, using fakeiteasy, to verify that a view is returned and more pertinently that the page title is set correctly?

TIA,

David

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里°也失望 2024-11-08 09:38:15
// arrange
var sut = new SomeController();
sut.ControllerContext = A.Fake<ControllerContext>();
var fakeContext = A.Fake<HttpContextBase>();
A.CallTo(() => sut.ControllerContext.HttpContext).Returns(fakeContext);
A.CallTo(() => fakeContext.Items).Returns(new Hashtable());

// act
var actual = sut.Add();

// assert
Assert.AreEqual("Some title", (string)fakeContext.Items["pm-page-title"]);
// arrange
var sut = new SomeController();
sut.ControllerContext = A.Fake<ControllerContext>();
var fakeContext = A.Fake<HttpContextBase>();
A.CallTo(() => sut.ControllerContext.HttpContext).Returns(fakeContext);
A.CallTo(() => fakeContext.Items).Returns(new Hashtable());

// act
var actual = sut.Add();

// assert
Assert.AreEqual("Some title", (string)fakeContext.Items["pm-page-title"]);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文