2013-07-11 60 views
1

这是我第一次做单元测试,所以我试图找到如何进行单元测试的DAO的参考。你们能举一个简单的例子:setUpBeforeClass,setUphow to test a method that inserting new data in database using model for this。只是一个简单的例子,使用简单的模拟。感谢您的考虑单元测试的DAO

+0

对于什么编程语言?使用什么单元测试框架? – zerkms

+0

我不确定你在找什么。一个简单的谷歌搜索会引发大量关于SO和大量文档的问题和答案,并提供相应的策略。 –

+0

@zerkms我使用的是java和mockito,如果我没有弄错 – newbie

回答

0

使用模拟对象执行单元测试的想法让我感到奇怪,因为您所做的只是测试您的模拟对象而不是真实模拟对象。如果你认为你需要使用模拟对象来模拟数据库访问,那么你的整个架构是错误的。我个人使用三层体系结构构建我的所有软件,我可以在业务层中拥有尽可能多的对象,但数据访问层中只有一个对象。因此,如果我想用真正的数据库访问交换真正的数据库访问,我会在哪里进行更改?我的业务层中的所有200多个对象,还是数据访问层中的1个对象?为什么我应该实现一个机制来改变我的应用程序中的每个对象,当我真正需要做的是改变一个呢?

控制器意味着集成测试,而不是单元测试。但是测试金字塔规定单位级别应该是重点,因此人们默认会被吸引进去。

断言在任何情况下都不应该失败。 如果它们在测试中失败,则表示存在逻辑错误。 基本上,如果你的函数在执行“assert(0)”而不是返回一个错误代码,那么这个函数应该被重写。

您可以对类定义进行大规模更改 - 甚至可以抛出所有东西并将其替换为完全不同的实现 - 而不影响任何使用该类的对象的代码?

不幸的是,由于像Java这样的刚性语言产生了各种各样的模式,依赖注入已经广泛传播,并被推崇为跨语言的最佳实践,以克服灵活性和可塑性带来的好处。

参考