【发布时间】:2011-11-16 20:35:31
【问题描述】:
我选择的数据库是 MongoDB。我正在编写一个数据层 API 来从客户端应用程序中抽象实现细节——也就是说,我本质上是提供一个公共接口(一个充当 IDL 的对象)。
我正在以 TDD 方式测试我的逻辑。在每个单元测试之前,调用@Before 方法来创建数据库单例,之后,当测试完成时,调用@After 方法来删除数据库。这有助于促进单元测试之间的独立性。
几乎所有单元测试,即执行上下文查询,都需要事先发生某种插入逻辑。我的公共接口提供了一个插入方法 - 但是,将此方法用作每个单元测试的前导逻辑似乎是不正确的。
我确实需要某种模拟机制,但是,我在模拟框架方面没有太多经验,而且 Google 似乎没有返回任何可能用于 MongoDB 的模拟框架。
其他人在这些情况下会怎么做?也就是说,人们如何对与数据库交互的代码进行单元测试?
此外,我的公共接口连接到在外部配置文件中定义的数据库 - 使用此连接进行单元测试似乎不正确 - 再次,这种情况会从某种模拟中受益?
【问题讨论】:
标签: java unit-testing mongodb junit morphia