1

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

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

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

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

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

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

4

2 回答 2

1

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

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

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

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

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

于 2008-09-24T11:30:51.127 回答
0

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

通过自动测试您获得的最大好处。无论是自动的并为您工作的,都是好的。

于 2008-09-24T09:56:23.163 回答