【问题标题】:How to make DAL integration tests less brittle?如何使 DAL 集成测试不那么脆弱?
【发布时间】:2014-10-21 03:12:00
【问题描述】:

首先。我们不使用 ORM。并且不会在不久的将来使用它。 (这不是我的决定)。

我们为多个读/写情况创建存储过程。
大多数读取 SP 用于填充发送给客户端的 DTO。

每个 DAL 方法通常调用单个 SP。 集成测试包括运行插入脚本,然后根据脚本初始化期望,调用方法,然后检查返回的结果。 IE。标准 AAA 模式。

但是,即使是小型数据库架构重构通常也会中断大约一百个测试。 准备是原因:而 DTO 通常需要列的子集。插入需要所有这些。因此,每个涉及重构表的 ыскшзе 都会中断。

我考虑在重构一种猴子工作后每次都更正一堆脚本。寻找提高测试稳健性的方法。

【问题讨论】:

    标签: c# .net integration-testing data-access-layer


    【解决方案1】:

    您可以尝试编写通用函数来准备一个表并始终使用它,而不是在您的测试中重复准备语句。

    您还可以查看与数据库交互的 T4 模板,以在编译测试之前生成准备语句。

    Generate from T4

    【讨论】:

    • DTO 通常由来自多个表的数据组成。我还考虑使用一个脚本来填充数据库然后运行所有读取 DAL 方法的方法。这里的执行顺序无关紧要,因为 DB 的状态没有改变。不幸的是,DB 生成的值存在一些问题,这些问题有时是测试预期的一部分。
    • 但是对于这些情况单独的脚本是可以的 =)
    • 如果您为每个 DTO 而不是每个表制作类似 T4 生成器的东西,该解决方案仍然可以工作。这个想法是限制发生变化的地方,但有时将生成器类中的所有内容分开可能会很困难,但一旦完成,您的所有测试代码都会非常稳定
    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 2022-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多