2011-12-20 49 views
0

我正在生成一个包含多行和多列的CSV文件。测试CSV - 我应该走多远?

但是,当我测试所说的CSV时,我觉得我只是重复构建测试中的文件的代码,因为我正在检查每个字段是否正确。

问题是,这比我看起来更明智吗,还是有更好的办法?

+0

您是在测试中建立预期的字符串还是简单地陈述它们'string expected =“c,s,v”;​​'? – StuperUser 2011-12-20 13:16:37

+0

你能举一个测试的例子吗? – 2011-12-20 13:19:13

+0

你是什么“生成CSV”?从基地读取,使用API​​构建的对象等...?如果是这样,那么一个测试,建立到您的“CSV生成器”的输入,获得输出,并将其与一个硬编写的,预期的CSV文件进行比较似乎对我而言更为明智。 – phtrivier 2011-12-21 10:05:31

回答

0

一个更简单的测试就是将CSV导入电子表格或数据库,并验证数据输出是否与适当的字段对齐。没有额外的列或额外的行,从导入的记录集中选择的数据与生成CSV的记录集等是完美的INTERSECT。

更重要的是,我建议确保您的测试数据包含常见的CSV失败场景,例如:

  • 字段包含逗号(或任何你的分隔符)
  • 字段包含多个逗号(你可能会认为这是同样的事情,但我已经看到了一个失败在其他成功)
  • 场包含新行字符
  • 字段包含不在CSV文件的代码页中的字符

...确保您的代码正确处理它们。

+0

你说的是看实际的文件吗?我正在编写自动化的测试。 – 2011-12-20 14:19:24

+0

不,我的意思是使用一个自动化过程,将CSV文件导入SQL数据库,然后使用查询来计算行数,计算列数,对原始记录集执行INTERSECT查询等。我所说的一切都可以自动化。仅仅因为我是一个数据库人员,并不意味着我不了解测试驱动开发。 ;-) – 2011-12-20 14:23:55