使用NDBUnit框架进行单元测试

时间:2009-10-05 11:47:40

标签: c# unit-testing tdd xsd ndbunit

我正在为一个随着时间成熟而成熟的应用程序编写单元测试。我们正在使用NDBUnit,因为测试用例变得彼此独立......当我们开始开发这个应用程序时,DB模式非常易于管理在VS设计器上拖放表以创建XSD从来都不是问题。好吧,使用我当前的数据库架构,生成的XSD大小超过3MB。在慢速开发机器上VS尝试打开XSD时进入休眠状态。 因此,保持DB模式和XSD同步变得非常具有挑战性。 有没有办法摆脱修改XSD的手动步骤? 你建议我应该考虑其他单元测试框架吗? Spring.Net肯定会给我我需要的东西,但是我们没有接口,因此集成它将是一项繁琐的工作。

1 个答案:

答案 0 :(得分:10)

如果您手动使用Visual Studio设计器在生产环境中创建XSD文件,那么您可能做错了:)正如您所发现的那样,Visual Studio XSD设计器可能是最不可管理的方式保留您的XSD文件。

我建议按照我的方式进行操作并切换到MyGeneration代码生成工具,从数据库中创建XSD文件。

信息:http://www.mygenerationsoftware.com

下载:http://sourceforge.net/projects/mygeneration/

XSD模板:http://www.mygenerationsoftware.com/TemplateLibrary/Archive/?guid=59a03408-c96f-4baf-8171-b6bfe8725dab

另外,您应该注意,虽然我通过强制将整个数据库强制转换为单个XSD文件来演示在这些截屏视频中使用NDbUnit工具,但意图 NDbUnit工具的实际使用模式是根据需要使用多个 XSD文件来支持不同的数据库相关测试。

由于XSD文件的内容控制NDbUNit将在任何时间运行的数据库的“范围”,因此该工具的目的是为不同的数据提供许多不同的XSD文件相关测试,您将仔细考虑测试,XSD和测试数据(XML),以便它们在不同的测试集合中彼此密切相关。

整个数据库表示在单个XSD文件中(特别是当该XSD文件接近3MB时!)几乎可以肯定是一种反模式,应该让你认为你可能是不要以足够精细的方式考虑您的测试或测试数据,以便有效。

如果您无法在不违反参照完整性规则的情况下将数据有效地加载到数据库表的一部分中,那么您可能需要解决数据库设计问题。正如一个单一的上帝对象是OO设计中的反模式一样,单个单一数据库在很多地方都具有引用完整性约束,只有通过加载每个表的数据才能插入记录(强制你测试因为听起来你可能在这里做的事情一下子就完成了。)

最后,为了清晰起见,作为一个快速的程序点,NDbUnit项目现在一直是开源的,完全独立于Microdesk。当我在Microdesk工作时,公司做了使用该工具,我做了花费我的非工作时间为项目做贡献,但Microdesk只是一家采用的公司该工具因此完全错误地将NDbUnit称为“Microdesk的NDbUnit框架”。

希望这有帮助〜!