0

首先,我可能会用这个来找错树,所以如果我错了,请纠正我。

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

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

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

我的测试是按照以下方式设置的;

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

那么如何将存储库传递给将提供适当产品的控制器?一旦我调用了 using 语句,我的系统已经启动了浏览器,所以为时已晚。但是在浏览器启动之前,控制器不存在,所以我无法注入适当的存储库。

还是我从根本上弄错了,我只能对我的数据库使用WatiN,我需要对其进行编程以从数据库中选择每种产品的成员,然后以这种方式进行测试?

4

1 回答 1

0

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

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

看起来不错还是我完全误解了你?

于 2014-08-27T16:04:41.997 回答