单元测试数据生成的最佳实践

3

我有一个单元测试,其中包含需要与实际自定义对象进行比较的大量数据。因此,我必须创建一个预期的自定义对象并用大量数据填充它,现在我正在代码中硬编码预期的自定义对象。有一种情况是我必须使用不同的数据集作为我正在测试的方法的输入。根据数据集,我必须获得相对应的输出,这将是实际响应(大量数据)。除了在代码中硬编码预期值之外,是否有任何最佳实践适用于上述情况?(类似于XML或CSV)。


通常情况下,发布你正在进行的代码示例是有帮助的,这样人们可以给你具体的反馈。 - Scrappydog
1个回答

0

您可以创建使用XmlSerializer序列化对象的代码。

当应用程序运行并且您在内存中拥有正确的对象时,需要调用该代码。

将XML保存到文件中,并从XML中构造测试对象。

您可能有几个XML文件,可以涵盖不同的情况。

在我的应用程序中,我有一个从外部Web服务导入数据的代码。我为服务响应对象生成了一些XML(它们非常庞大),并使用它们来测试我的解析逻辑。

更新:这个技巧只适用于实体对象。您不能序列化/反序列化与文件或数据库一起工作的类。

在这里,您可以找到示例代码。 http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm


你能给我发一个你正在做的样例吗?它看起来和我正在实现的很相似。 - user1432798
xmlserializer-example 序列化器对象应该在你的生产代码中构造好对象并调用Serialize方法,而在单元测试中则使用TestClass LoadedObj = (TestClass)SerializerObj.Deserialize(ReadFileStream);来准备数据。 - Dmitry Harnitski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接