如何将Mockito用于与数据库交互相关的行为

时间:2012-01-24 07:23:08

标签: unit-testing dao mockito

我已经在网上搜索了几天这个问题的简单答案。我现在希望有人引导我朝着正确的方向前进。我是一名目前正致力于Enterprise Java Beans的软件培训生。

另外,为了确定我有多困惑,我的思想只是不接受嘲笑甚至剔除作为测试你所拥有或可能发展的东西的正确方法。

1 个答案:

答案 0 :(得分:1)

  

我的心灵只是不接受嘲笑,甚至顽固作为一种正确的方式   测试您拥有或可能开发的内容

您将看到,您可以获得更多体验模拟/存根的价值。请记住,单独测试是单元测试的唯一方法。集成测试是另一回事。

单独测试事物是建立工作功能基线的好方法。

独立测试的唯一方法是使用模拟/存根。否则,您的许多测试最终都必须访问数据库(在标准的Web应用程序中),更不用说您需要为每个测试连接完整的组件堆栈。

考虑一种必须对高级控制器进行单元测试的情况。该控制器使用一个使用2个DAO的服务。要测试控制器是否返回了正确的数据,您必须

1)只需模拟服务,告诉它预期调用并返回一些数据,然后断言返回正确的数据。

2)创建服务实例。创建每个DAO的实例,配置它需要的任何内部内容。 PU服务中的DAO。使用数据填充数据库。

听起来更像是工作吗?请记住,服务本身是独立测试的,DAO也是如此。

此外,考虑到嘲弄/顽固的测试可以促进更清洁的设计。通常建立松散耦合,紧密集成的代码是一种很好的方法。考虑如何自然地测试事物有助于设计。