我有一个单元测试,其中包含需要与实际自定义对象进行比较的大量数据。因此,我必须创建一个预期的自定义对象并用大量数据填充它,现在我正在代码中硬编码预期的自定义对象。有一种情况是我必须使用不同的数据集作为我正在测试的方法的输入。根据数据集,我必须获得相对应的输出,这将是实际响应(大量数据)。除了在代码中硬编码预期值之外,是否有任何最佳实践适用于上述情况?(类似于XML或CSV)。
我有一个单元测试,其中包含需要与实际自定义对象进行比较的大量数据。因此,我必须创建一个预期的自定义对象并用大量数据填充它,现在我正在代码中硬编码预期的自定义对象。有一种情况是我必须使用不同的数据集作为我正在测试的方法的输入。根据数据集,我必须获得相对应的输出,这将是实际响应(大量数据)。除了在代码中硬编码预期值之外,是否有任何最佳实践适用于上述情况?(类似于XML或CSV)。
您可以创建使用XmlSerializer
序列化对象的代码。
当应用程序运行并且您在内存中拥有正确的对象时,需要调用该代码。
将XML保存到文件中,并从XML中构造测试对象。
您可能有几个XML文件,可以涵盖不同的情况。
在我的应用程序中,我有一个从外部Web服务导入数据的代码。我为服务响应对象生成了一些XML(它们非常庞大),并使用它们来测试我的解析逻辑。
更新:这个技巧只适用于实体对象。您不能序列化/反序列化与文件或数据库一起工作的类。
在这里,您可以找到示例代码。 http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm