MVC3 中 UI 的单元测试

发布于 2024-12-07 22:20:12 字数 167 浏览 0 评论 0原文

我有一个 MVC 项目和大量用于测试数据传递的 TDD 单元测试,这些测试都工作正常。 不过,我现在要为 GUI 添加一些测试。

我将如何测试如下内容:

如果 home/page1,按“下一步”提交应转到“/Page2”。

我仍然不太明白如何对基于 UI 的功能进行测试。

I have an MVC project and lots of TDD unit tests for testing the passing of data which all work fine.
However, I am now going to add some tests for the GUI.

How would I go about testing something such as the below:

If home/page1, pressing "next" submit should goto "/Page2".

I still dont quite understand how to do tests on UI based features.

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

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

发布评论

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

评论(2

心意如水 2024-12-14 22:20:12

如果你想测试控制器的动作,你可以这样做
(我在这个测试中假设了很多东西,但我希望你能得到要点)

[Test]
public void Page1_Post_IfallDataOK_ShouldSaveAndReturnPage2()
{
  var controller = new HomeController(repository.Object); //repository is: Mock<IRepository>
  var result = controller.Page1(new MyModel() {MyValue = "test"});
  Assert.IsInstanceOfType(typeof(RedirectToRouteResult), result);
  var redirect = (RedirectToRouteResult)result;
  Assert.AreEqual("Page2", redirect.RouteValues["action"]);
  repository.Verify(x => x.Save(It.IsAny<MyModel>()), Times.Once());
}

If you want to test the actions of the controller you can do something like that
(i'm assuming a lot of things in this test but I hope you get the essentials)

[Test]
public void Page1_Post_IfallDataOK_ShouldSaveAndReturnPage2()
{
  var controller = new HomeController(repository.Object); //repository is: Mock<IRepository>
  var result = controller.Page1(new MyModel() {MyValue = "test"});
  Assert.IsInstanceOfType(typeof(RedirectToRouteResult), result);
  var redirect = (RedirectToRouteResult)result;
  Assert.AreEqual("Page2", redirect.RouteValues["action"]);
  repository.Verify(x => x.Save(It.IsAny<MyModel>()), Times.Once());
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文