【问题标题】:Unit Testing data?单元测试数据?
【发布时间】:2010-09-12 16:16:51
【问题描述】:

我们的软件管理来自各种来源的大量数据馈送:实时复制的数据库、自动通过 FTP 传输的文件、数据库存储过程的计划运行以缓存来自链接服务器的数据快照以及许多其他获取数据的方法。

我们需要验证和验证这些数据:

  • 甚至发生了导入
  • 数据是否合理(空值、行数等)
  • 数据是否与其他值一致(也许我们有多个类似数据的来源)
  • 是否数据不足,需要手动提示导入

在很多方面,这类似于单元测试:需要进行多种类型的检查,只需将新检查添加到列表中,然后重新运行每个类别的测试以响应特定事件。已经有很好的 GUI 用于运行测试,甚至可以安排它们。

这是一个好方法吗?是否有更好的、类似通用的数据验证模式?

我们是一家 .NET 商店,Windows 工作流 (WF) 会是更好更灵活的解决方案吗?

【问题讨论】:

    标签: validation unit-testing test-data data-scrubbing


    【解决方案1】:

    单元测试与您需要做的事情不同。它更像是集成测试或验收测试。但这不是重点。

    您的系统对验证进入系统的数据有很高的要求。数据通过各种方式进入系统,我认为需要以不同的方式对其进行验证。

    工作流适用于设计和控制易于更改或需要人工干预的业务流程(逻辑)。当涉及到验证的主题时,它是不可知的。但是,将您的验证过程托管为工作流可能是一个好主意,因为工作流被设计为灵活、寿命长并且能够进行人工干预。在工作流状态机框架中托管您的验证过程将允许您在运行时为不同类型的数据导入定义验证策略。

    您需要设计一个验证框架,该框架的逻辑严重依赖于组合而不是继承。分解将数据导入系统并验证为原子步骤的所有不同方式。按职责对这些步骤进行分组,并使用实现对象执行每个步骤所需的最少、最少的属性和方法创建接口。创建由这些不同接口组成的基类。通过这个框架,您可以混合和匹配适合特定导入或验证步骤的实现。

    最后一件事。工作流被序列化为 xaml 以进行长期存储。您的类也应该是 xaml 可序列化的,以使从活动到存储库的转换尽可能顺利和简单。

    【讨论】:

      【解决方案2】:

      测试这些数据的有效性似乎是合理的。您可能会或可能不会将其称为单元测试,这是您的选择。我不会。使用您认为最适合这项工作的工具 - 我不知道您所说的 WF(WebForms?)是什么意思。

      您通过自动测试获得的最大好处。任何自动且适合您的,都是好的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-10
        • 2020-07-03
        • 1970-01-01
        相关资源
        最近更新 更多