【问题标题】:Complex tests - dependency on same test data复杂测试 - 依赖相同的测试数据
【发布时间】:2012-02-28 05:56:33
【问题描述】:

我正在开发自定义序列化程序作为爱好项目,我想学习它的 TDD。

我有一个序列化和反序列化简单对象图的测试。 现在我想用非平凡的反序列化测试一些复杂的图(即没有无参数构造函数的类、循环引用、大量对象等......)。

我需要测试序列化的“构建”和“提取”图,我需要测试创建图的序列化和反序列化。我想用几个图(从简单到复杂到超复杂的图)测试所有四个动作。

我应该创建一些非测试类,为所有测试提供预定义的图表,还是每个测试都应该有自己的图表来源?

我问这个问题是因为我发现在一个类(图表的提供者)上进行多个测试可能存在问题。

谢谢。

【问题讨论】:

    标签: c# .net testing


    【解决方案1】:

    这里不一定有“正确”的答案;这取决于您的项目和测试。 似乎 拥有一个共同的图源是一个好主意 - 不一定是单个类,也可能是一组类(即图工厂/存储库),它们可以生成表示不同概念的图(类缺少无参数构造函数、循环引用等)。

    这并不能避免多个测试依赖于同一个来源的风险,但您需要权衡定义每个图表的构建成本。您最终可能会在测试中得到大量重复的代码。如果重用给定的图形定义有好处;图工厂可能是前进的方向。

    一个想法可能是针对每个图表进行元测试/一组元测试,以便您可以确认图表的有效性。关键是,如果一组全部使用相同图表的实际测试突然失败,您首先查看元测试并确保它们通过。您计划的每个测试都应该专注于一个方面(构建/提取等),然后这些测试可以依赖于图的有效性。

    关键是使每个测试尽可能简单,以便如果/当它失败时,它明显为什么失败 - 通过在其他地方构建图形(并单独验证它),你可以拥有你的序列化测试只关注那个和那个。

    【讨论】:

      猜你喜欢
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多