哪个层应该在n层架构中进行测试

时间:2013-04-05 11:49:19

标签: unit-testing testing n-layer

我们在应用程序中使用n层架构。 假设我们使用3层应用程序并使用MVC模式进行表示层,哪个层应该测试? 如何在我的应用程序中找到可测试性点?

  1. 表示层?
  2. 业务层
  3. 数据层
  4. 所有人?

2 个答案:

答案 0 :(得分:1)

仅测试您想要确定工作的图层。以上所有3个似乎都是工作重要的事情。你不想删除它们中的任何一个。

尝试在现有软件中找到可用性点,但这可能是一项挑战。有一本好书,Working Effectively with Legacy Code,其中遗产被定义为没有测试的代码,它讨论了这个问题。基本上,如果你没有设计可测试性,它可能很难用鞋拔,你可能需要重构。

诀窍是为代码添加测试基础设施:模拟,存根和其他测试组件,以便您只隔离测试中的位。这在测试数据库时很有用,你真的不想运行真正的查询,它只需要太长时间,你希望测试是快速的。依赖注入可以用于更静态的语言,如C ++ / C和Java。

答案 1 :(得分:0)

在单元测试的背景下,什么是“单位”?它是您认为是一个单元的任何东西,作为代码中最小的可测试部分。

现在,大多数人选择班级或方法作为他们的单位。如果你这样做,你的所有图层都将包含你可以进行单元测试的单位,所以问题的答案是测试所有图层。