Asp.net mvc 3 如何将假数据传递给视图(测试类-我知道您不测试视图)

Asp.net mvc 3 如何将假数据传递给视图(测试类-我知道您不测试视图),asp.net-mvc-3,Asp.net Mvc 3,我有一个向导,有一系列的“步骤”,每个步骤都有一系列的“输入”(文本框、单选按钮列表、复选框列表、下拉列表) 一切都很顺利,但我现在正试图对向导的最后一个“提交”步骤执行一些计算,我需要做两件事: 1) 算出a+b+(c*2)的逻辑,等等。我不需要“测试”这个,我只需要一堆if/else子句,然后绘制出计算结果 2) 为了方便上述操作,并快速查看输出(包括CSS/UI和其他内容),我希望传递所有步骤中的假数据。如何最好地做到这一点 我正在使用一组模型/视图模型,因此MyModel可能有: pub

我有一个向导,有一系列的“步骤”,每个步骤都有一系列的“输入”(文本框、单选按钮列表、复选框列表、下拉列表)

一切都很顺利,但我现在正试图对向导的最后一个“提交”步骤执行一些计算,我需要做两件事:

1) 算出a+b+(c*2)的逻辑,等等。我不需要“测试”这个,我只需要一堆if/else子句,然后绘制出计算结果

2) 为了方便上述操作,并快速查看输出(包括CSS/UI和其他内容),我希望传递所有步骤中的假数据。如何最好地做到这一点

我正在使用一组模型/视图模型,因此
MyModel
可能有:

public string FirstName { get; set; }
MyViewModel
将具有:

public MyModel MyModel { get; set; }
现在,一个视图模型中大约有10个模型,基本上有50多个输入。我的问题是,如果我想看到“提交”的最终结果,我每次都必须通过向导


我想跳过这一步,在不经过整个向导的情况下传递假数据(假设我的入口点是我的“确认”步骤,该步骤有一个“提交”按钮,所以我想从“确认”开始,然后单击“提交”(否则,也许我可以从“提交”步骤开始)).

听起来你不是在进行单元测试,所以你可以在控制器的确认获取操作中创建一个虚拟视图模型:

    var MyViewModel dummyModel;

    var infoStepModel info;
    info.property = xxx;

    dummyModel.Property = XXX;
    dummyModel.Property = 123;
    dummyModel.infoStep = info;

    return View(dummyModel);
然后将属性更改为您需要的设置,以便测试post逻辑的每个部分。这会有点慢,因为在测试完所有逻辑流之前,每次运行都需要更改属性

如果没有测试框架,您将被迫运行程序,并按照所述输入每个步骤。有了这个,你至少可以放弃一次又一次地做每一步,直接进入确认步骤,准备好假数据


此外,如果您将逻辑从控制器的post操作中移出,并移入一个接受模型的类中,那么如果您使用的是测试框架,那么您也可以更轻松地对其进行测试。然后,您将使用控制器仅传入数据,并可能对其传回的类结果作出响应。

谢谢,这对于快速而肮脏的实现来说非常有用。现在,我不太担心如何改变它,但是,是的,我应该考虑一个测试框架。我是编程新手,所以添加测试有点让人不知所措,因为我甚至不知道如何去做。我感觉到我的视野中有更多的阅读/研究。:)你能推荐一个框架来帮助实现这一点并且相对容易实现吗?有几个框架,NUnit和XUnit似乎非常流行。MS测试也被直接烘焙到VS中。