【问题标题】:Which Layer should test in n-layer architecture [closed]在 n 层架构中应该测试哪一层 [关闭]
【发布时间】:2013-04-05 11:49:18
【问题描述】:

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

  1. 表示层?
  2. 业务层
  3. 数据层
  4. 全部?

【问题讨论】:

标签: unit-testing testing n-layer


【解决方案1】:

只测试你想确保工作的层。以上所有 3 项似乎都是重要的工作。你不想删除它们中的任何一个。

试图在现有软件中找到未针对其设计的可测试性点可能是一项挑战。有一本好书,Working Effectively with Legacy Code,其中遗留被定义为没有测试的代码,它谈到了这个问题。基本上,如果您不为可测试性而设计,则很难将其硬塞进去,您可能需要重构。

诀窍是在代码中添加测试基础设施:模拟、存根和其他测试组件,以允许您仅隔离被测位。这在您测试数据库时很有帮助,您真的不想运行真正的查询,这将花费太长时间并且您希望测试快速。依赖注入对于更静态的语言(如 C++/C 和 Java)很有帮助。

【讨论】:

    【解决方案2】:

    在单元测试的上下文中,什么是“单元”?它是你识别为一个单元的任何东西,是你代码中最小的可测试部分。

    如今,大多数人选择类或方法作为他们的单位。如果您这样做,您的所有层都将包含您可以进行单元测试的单元,因此您的问题的答案是测试所有这些。

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 2010-11-14
      • 2015-04-04
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多