这是我第一次进行单元测试,所以我试图找到有关如何对 DAO 进行单元测试的参考。你们能举一个简单的例子setUpBeforeClass
,setUp
和how to test a method that inserting new data in database using model for this
。只是一个使用简单模拟的简单示例。谢谢您的考虑
问问题
345 次
1 回答
0
使用模拟对象来执行单元测试的想法让我感到很奇怪,就像你所做的一切都是测试你的模拟对象而不是你的真实对象一样。如果您认为需要使用模拟对象来模拟数据库访问,那么您的整个架构就是错误的。我个人使用 3 层架构构建我的所有软件,在该架构中,我可以在业务层中拥有任意数量的对象,但在数据访问层中只有 1 个对象。因此,如果我想用虚拟数据库访问交换真实数据库访问,我会在哪里进行更改?我的业务层中的所有 200 多个对象,或者只是数据访问层中的 1 个对象?当我真正需要做的只是更改一个对象时,为什么还要实现一种机制来更改我的应用程序中的每个对象?
控制器旨在进行集成测试,而不是单元测试。但是测试金字塔规定了单元级别应该是焦点所在,所以人们默认会被吸引进去。
断言在任何情况下都不应失败。如果它们在您的测试中失败,则表明存在逻辑错误。基本上,如果您的函数正在执行“assert(0)”而不是返回错误代码,那么应该重写该函数。
您能否对类定义进行大量更改——甚至丢弃整个内容并用完全不同的实现替换它——而不影响使用该类对象的任何代码?
不幸的是,源自 Java 等僵化语言的各种模式已经发生,依赖注入已经传播并被提倡为一种跨语言的最佳实践,以夸大灵活性和延展性的好处。
参考
于 2013-10-11T01:28:19.427 回答