【问题标题】:Unit testing using NDBUnit framework使用 NDBUnit 框架进行单元测试
【发布时间】:2010-12-14 21:57:09
【问题描述】:

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

【问题讨论】:

    标签: c# unit-testing tdd xsd ndbunit


    【解决方案1】:

    如果您在生产环境中手动使用 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

    另外,您应该注意,虽然我在这些截屏视频中演示了 NDbUnit 工具的使用,方法是将整个数据库强制压缩到一个 XSD 文件中,但 有意 em> NDbUnit 工具的实际使用模式是根据需要使用多个 XSD 文件来支持不同的数据库相关测试。

    由于 XSD 文件的内容控制着 NDbUNit 将在任何时候操作的数据库的“范围”,因此该工具的目的是为您的不同数据提供许多不同的 XSD 文件依赖的测试,并且您将仔细地确定测试、XSD 和测试数据 (XML) 的范围,以便它们在不同的测试集合中彼此密切相关。

    将您的整个数据库表示为单个 XSD 文件(尤其是当该 XSD 文件接近 3MB 时!)几乎可以肯定是一种反模式,应该让您考虑到您可能没有以足够细化的方式考虑您的测试或测试数据以使其有效。

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

    最后,为了清晰起见,NDbUnit 项目现在和一直都是开源的,并且完全独立于 Microdesk。当我在 Microdesk 工作时,该公司确实使用了该工具,而我确实在业余时间为该项目做出了贡献,但 Microdesk 只是采用该工具的公司之一该工具,因此将 NDbUnit 称为“Microdesk 的 NDbUnit 框架”是完全错误的。

    希望对你有帮助~!

    【讨论】:

      猜你喜欢
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2017-11-02
      相关资源
      最近更新 更多