【问题标题】:Net Testing Framework and Repetition网络测试框架和重复
【发布时间】:2019-03-07 05:36:18
【问题描述】:

为数据仓库编写测试用例的正确测试协议是什么?

背景:

我们正在将多个 SQL 表从源 A 复制到源 B,并使用应用动态 SQL 的特殊过程。该过程使用 information_schema 查找表 A 中的列。列,验证它们是否存在于表 B 中,然后复制。

什么是合适的单元测试框架?我们有超过 1000 个表,我们是否需要针对 1000 个表验证计数和值单独测试此过程?并在 VS Test Explorer 中编写 1000 个 Nunit/Xunit 测试?

例如;复制 SQL 表(客户、付款、库存)。

客户 A ---> 客户 B

库存 ---> 库存 B

付款 B ---> 付款 B

示例:运行测试用例验证计数,并将结果复制到数据测试表中,进入,使用 for/while 循环

insert into dbo.TestResultTable(TestFlag)
utilize for loop   -- make sure counts are equal for every copy
set @TestFlag = (select count(*) from CustomerA = select count(*) from CustomerB)
set @TestFlag = (select count(*) from InventoryA = select count(*) from InventoryB)
set @TestFlag = (select count(*) from PaymentsA = select count(*) from PaymentsB)

【问题讨论】:

标签: c# unit-testing .net-core nunit xunit


【解决方案1】:

您正在描述比单元测试更广泛的测试级别。我会在最后回到那个。

您想要验证是否已完成 1000 个表的操作并且一切都正确。这是一个非常高级的测试......我称之为集成测试。没关系,但显然这很耗时。

我会做的是减少时间

  1. 做一个简短的测试,确保每个应该创建的表都已实际创建。
  2. 随机选择n 表进行完整测试。
  3. 根据未来出现的错误添加更多测试。

理想情况下,我会参数化n 并在需要时允许进行详尽的测试。例如,随机测试不会发现某个名称中包含空格时出现的问题,但这种情况不太可能发生。

现在让我们假设您实际上想要对所有这些进行单元测试(我愿意)...

  1. 将您的数据层放在一个可以模拟的接口后面。
  2. 创建一个更新 1 个表的方法。使用 mock 彻底测试该方法。
  3. 现在模拟包含该方法的对象。
  4. 在进行完整复制时,测试该方法是否被调用了必要的次数,并使用正确的表名。

【讨论】:

    猜你喜欢
    • 2011-03-26
    • 2010-10-21
    • 2011-07-31
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多