如何为编写器/解析器编写测试? (蟒蛇)

时间:2015-04-30 17:01:51

标签: python unit-testing testing functional-testing

我在Python中编写了一个软件,它可以进行大量的解析,并且可以将大量文件写入磁盘。我开始编写单元测试,但不知道如何对只是将一些数据写入磁盘的函数进行单元测试,并且不返回任何内容。

我熟悉unittest和ddt。任何建议,甚至是我可以了解更多资源的链接都将不胜感激。

1 个答案:

答案 0 :(得分:3)

可以说,最好的解决方案是将你的功能分成两部分。一件做解析,第二件做写。然后,您可以单独对每个部件进行单元测试。

对于第一部分,给它一个文件并验证解析函数返回正确的字符串,和/或抛出正确的异常。

对于第二个,给它写一个字符串,然后验证文件是否已写入,以及内容是否与您的字符串匹配。跳过编写数据的测试很有诱惑力,因为假设python open和write函数有效是合理的。但是,单元测试还证明您传入的数据是写入的数据(即:您没有导致将固定字符串写入文件的错误)。

如果您无法重构代码,您仍然可以测试该功能。将其提供给要解析的数据,然后打开它写入的文件,并将结果与​​您期望的结果进行比较。