MyBatis-如何对测试结果图进行单元化?

时间:2018-12-06 19:10:19

标签: unit-testing mybatis

mybatis文档指出:

  

始终以增量方式构建ResultMap。单元测试在这里确实有帮助。如果您试图一次构建一个巨大的resultMap(如上图),那么很可能会出错,并且很难使用。从简单开始,然后一步一步地发展。和单元测试!使用框架的不利之处在于它们有时有点黑匣子(无论是否开放源代码)。确保编写自己想要的行为的最佳选择是编写单元测试。提交错误时帮助他们。

但是,他们在文档中始终没有解释如何对resultMaps进行单元测试。在他们的github Wiki上,他们有a page on unit testing,但它似乎更适合于贡献者而不是用户。当我似乎需要在内存数据库中构建功能齐全的数据库以测试映射时,如何按照结果建议的方式编写单元测试?

需要一个内存数据库听起来更像是一个集成测试,而不是一个单元测试,并且如果我的任何查询使用特定于数据库的SQL语句(例如SQL Server T-SQL语句),它就无法正确地测试另一个数据库的内存数据库类型。我误会了吗?

1 个答案:

答案 0 :(得分:0)

您的理解是正确的。

在Wiki上称为unit test的实际上是对内存数据库的集成测试。您可以尝试提供一个模拟的DataSource,它返回模拟的Connection,依此类推直到ResultSet,但这不是很实际。集成测试更适合这里。

我要说的重点不是关于unit-test(在这种情况下应该称为测试),而是增量部分。映射器中的mybatis错误消息有时是含糊的,因此使用短(类似TDD)的反馈循环有助于处理它。如果您为单个映射器运行测试,则您的编辑运行周期可能会很短。