【发布时间】:2011-07-04 11:19:19
【问题描述】:
我目前正在开发一个连接到多个数据库引擎的应用程序(现在有 2 个,但将来会增加),但在每个数据库上执行类似的操作。我想开发一组单元测试,我只需要编写一次,但可以在不同的数据库引擎上运行。这个应用程序将非常复杂,我预计我会为它编写数百个甚至数千个测试。
例如,我有一个检索数据库服务器中所有可用数据库的方法,我有两个类,它们具有定义 GetDatabases() 方法的相同接口。我想开发一种方法来创建实现 IDatabaseEngine 的类的实例,并在其上调用 GetDatabases() 方法。
然后我想用我的 MySQLDatabaseEngine 类调用这个方法一次,然后再用我的 SqlServerDatabaseEngine 类调用一次并测试输出。
我目前正在使用 MSTest,因为这是我最熟悉的,但如果证明不适合此任务,我不反对切换我的测试引擎。由于我今天早上才开始,到目前为止我只为此写了三个测试,所以切换根本不是问题。
甚至可能不需要对 MSTest 的配置做一些不同的事情,而是在 MSTest 中开发某种测试工具,以使用不同的参数两次运行一个方法。但是,我想避免任何我必须的情况
我考虑过代码生成,但我真的很想避免这种情况。
【问题讨论】:
-
您能找到解决方案吗?我遇到了同样的情况。
-
@RobH:大约几周后,我发现了 XUnit 和参数化测试。我现在根本不用 MSTest。
标签: c# unit-testing mstest