如何根据复杂的数据结构测试对象?

时间:2016-09-07 07:03:18

标签: c# unit-testing testing nunit

我正在努力解决更多的理论问题。你怎么能测试一些结构非常复杂的东西?

例如,我有一个转换器来转换多级数据结构。所以我把这个转换分成了更多的子转换器和一个" master"转换器,所以我可以单独测试它们。子转换器的测试非常简单,因为它们仅依赖于原始数据类型或低级复杂性数据结构。

但问题是如何测试" master"转换器,它需要所有这些子转换器以及复杂的数据结构来测试整体结果。

例如,我需要转换数据对象,它在第一级有一些基本类型和一个复杂类型。这种复杂类型由基本类型和一个复杂类型组成,而最终只表示基本类型。这意味着逻辑上有3个嵌套级别,或者实际上有6个级别,因为可能有一些字段对象(列表等)包含这些复杂类型。

为这个复杂的结构准备测试数据并不好。甚至没有提到我曾经听过一个声明,任何时候你必须在测试中做一个复杂的设置意味着你做错了什么。我知道这不是教条,但对此的感觉并不好。

我试图测试一些不应该测试的东西吗?或者我是否尝试了错误的方法来创建测试?

[被修改]

示例:

Type1

 - int number1
 - string name
 - List<Type2> object1

Type2

 - int number
 - string name
 - List<Type2> object2

您可以为Type1对象提供三个子转换器,数字,字符串和Type2转换器以及一个主转换器。

Object2是最后一个嵌套对象。所以它在逻辑上只有三级结构。但要重建这个,你必须做的不仅仅是创建具有一些属性的三个对象。

您必须为此创建List对象并使用至少一个对象填充它们,以便子转换器可以完成它们的工作。

0 个答案:

没有答案