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

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

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

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

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

我们是一家 .NET 商店,Windows Workflow (WF) 是否是一个更好、更灵活的解决方案?

有帮助吗?

解决方案

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

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

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

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

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top