【问题标题】:Unit Testing and Integration Testing demarcation in a maven database layer modulemaven 数据库层模块中的单元测试和集成测试划分
【发布时间】:2011-06-21 23:31:55
【问题描述】:

我相信在我必须编写的那种测试方面我一直在犯同样的错误。 我们的应用程序中有不同的 maven 模块,其中有一个名为 model 的模块,其中包含所有 pojo、daos 和所有休眠内容。它只执行 CRUD 操作,不了解所有其他模块。

在编写 DAO 之后,我觉得有一个测试可以证明对象正在被持久化和删除等。事实上,这实际上是一个集成测试,而不是我目前所读到的。

就 CRUD 操作而言,对我来说也使用模拟进行单元测试没有意义。

现在我在测试该模块时的立场有所不同。

这里的最佳做法是什么?它在一个合适的项目中做了什么?

感谢阅读

【问题讨论】:

    标签: hibernate unit-testing maven model integration-testing


    【解决方案1】:

    我能想到几种方法。

    一种方法是坚持你一直在做的事情,无论它是所谓的集成还是单元测试。通常这种类型的模块几乎没有要测试的业务逻辑,所以 CRUD 操作是唯一可测试的东西。如果您有易于访问的数据库并设计您的测试以自行清理,那就没问题了。更好的是,如果您有可以在测试开始前转储的数据库。

    许多地方使用的其他方法,是在内存数据库中使用进行测试(例如 Hypersonic)。但是由于您使用不同的数据库,因此您并没有准确地测试您构建的产品。然而,它将验证您的 Hibernate 映射和查询(不是特定于目标数据库的),这可能是模块中最重要的可测试方面。

    【讨论】:

    • 你好,感谢您的回复。我一直在文件模式下使用 hsqldb 和 mysql。目标数据库是 mysql。我正在使用脚本,所以在上下文中我切换了 db 的属性文件我想测试(mysql.jdbc.properties/msyql.hibernate.properties 和 hsql 相同)。所以我想我只是坚持这一点。谢谢
    猜你喜欢
    • 2016-01-23
    • 2013-03-18
    • 2012-01-01
    • 2016-10-03
    • 2012-05-05
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多