小编Joe*_*Joe的帖子

TDD'ing MVC控制器驱动设计

我正在开始一个新项目(好吧,重新启动现有项目),并尝试采用TDD(第n次)来获得它应该带来的所有好处.

我相信TDD将导致我的测试驱使我只编写我需要编写的代码,但它会驱使我编写我需要的代码,而不是留下一些代码.

这就是我目前的不确定状态.

考虑这个故事:

"用户必须能够添加小部件,这样做才能查看新添加的小部件的详细信息."

好吧,所以从UI工作(就像用户将从中添加他们的小部件,而不是使用Visual Studio和我写的一组程序集)......我从下面的测试开始,编写非常小的,以便测试通过.

所以我开始使用控制器抛出一个NotImplementedException,然后返回一个View()......以下是我写的最少的第一点,我可以让测试通过.

[TestFixture]
public class WidgetControllerTester
{

    [Test]
    public void Create_IfBusinessModelIsValid_ReturnRedirectToRouteResultToDetailsAction()
    {
    // Arrange
        var currentUser = new User
                              {
                                  DisplayName = "Fred",
                                  Email = "fred@widgets.com",
                                  Password = "pass",
                                  Status = UserStatus.Active
                              };
        var model = new WidgetModel();
        var controller = new WidgetController();
        // Act
        var actionResult = controller.Create(currentUser, model);
        // Assert
        actionResult.AssertActionRedirect().ToAction("Details");
    }
}

public class WidgetModel
{
}

public class WidgetController: Controller
{
    public ActionResult Create()
    {
        return View("Create");
    }

    [HttpPost]
    public …
Run Code Online (Sandbox Code Playgroud)

model-view-controller tdd asp.net-mvc

6
推荐指数
1
解决办法
952
查看次数

标签 统计

asp.net-mvc ×1

model-view-controller ×1

tdd ×1