【问题标题】:How can I test something that changes?我怎样才能测试改变的东西?
【发布时间】:2011-11-09 20:38:08
【问题描述】:

我正在测试一个脚本,该脚本在给定一些参数的情况下,将数据从我们的 API 复制到我们 CDN 上的某个位置。

但是,这种情况会不断变化。我应该如何为其添加测试?也许在给定一些参数时向 API 添加一些总是返回相同内容的东西?

谢谢!

【问题讨论】:

    标签: unit-testing testing tdd


    【解决方案1】:

    您正在触及单元测试的一个非常重要的方面:它迫使您编写“好的”代码。如果您希望您的代码能够在您所描述的那种情况下成功测试,您必须使用像 inversion of controlseparation of concerns 这样的良好实践。

    换句话说,要编写成功的测试,您需要抽象出您的依赖关系,最好是接口。然后,您可以通过注入该接口的stubmocked 实现来运行测试,该接口具有可重现和可控的输出。通过这样做,您只测试被测单元的逻辑(行为或状态,取决于口味),而不是您的依赖项。它会强制您分离关注点。

    (我会举例,但您没有指定您使用的是哪种语言)

    【讨论】:

      【解决方案2】:

      我并不是想成为一个聪明人,但是,如果您没有明确的期望,那么您在测试中就没有什么可断言的。

      测试应该存在的所有内容。如果您不关心输出的某些部分,只需测试它的存在。如果输出中的某些内容应该存在相关性,请对其进行测试。

      【讨论】:

      • 不用担心。这绝对是有道理的——非常感谢。
      【解决方案3】:

      你的答案有一个开始。要测试您的脚本,您需要一个测试框架,该框架允许您向脚本提供已知的输入状态、捕获输出并检查输出的正确性。

      不清楚“this”(不断变化)的指称是什么。 CDN 上的位置?如果是这样,您需要冻结该位置以进行测试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-07
        • 2023-01-22
        • 2021-07-12
        • 2021-02-02
        • 1970-01-01
        • 2022-10-01
        • 2011-08-20
        • 2016-02-14
        相关资源
        最近更新 更多