2014-08-27 54 views
0

首先,我可能会用这个叫出错的树,所以如果我错了,请纠正我。用户界面测试MVC与WatiN和注入参数到控制器

这就是说,我正在尝试使用WatIn编写简单的UI单元测试。目前我只在使用UI的一个子集。

我有一个名为Product的控制器及其关联的视图。 Controller通过构造函数接收ProductRepository。

我会撒谎做的是测试不同的产品类别在不同的测试中正确呈现,所以我需要将某种存根或模拟存储库传入我的代码中。

我的测试建立在;

using (var ie = new IE("http://localhost:2904/Product")) 
{ 
    ... 
} 

那么如何将存储库传递给我的控制器以提供相应的产品?一旦我调用了使用声明,我的系统就启动了浏览器,所以为时已晚。但是,直到浏览器启动,然后控制器不存在,所以我不能注入适当的存储库。

或者我从根本上得到了这个错误,而且我只能用WatiN来对付我的数据库,我需要对它进行编程以从数据库中选择每种产品的成员,并且以这种方式进行测试?

回答

0

我想,如你所说,你选择了错误的问题。如果我理解正确,则不需要UI测试和Watin,而是需要集成测试。我会建议创建控制器的实例,根据需要注入存储库并模拟其他依赖关系。比你可以切换存储库等。

在UI测试中,您可以测试整个应用程序从UI的顶部到数据库,因此很难更改行为或模拟某些部分。你真的需要用UI测试你的功能吗?仅仅在控制器中测试它不是更好,或者它不适合您的情况?

好像还是我完全误解了你?

+0

不,你明白我确定:-) 我只是希望能够建立UI,然后看看域,然后看看存储库,因为业务希望尽快看到原型。看起来他们将不得不等待 – Matt 2014-08-28 08:32:20

+0

我明白这一点。那么,如果需要的话,你可以添加一些配置并且基于那些更改存储库。 – 2014-08-28 09:34:38