为了测试,函数是否需要额外的参数?

时间:2016-09-04 11:31:28

标签: python testing

我正在为我打算写的程序编写测试,检查配置文件中的某些行。

例如,程序可能会检查以下行:AllowConnections- 包含在SomeFile.conf文件中。

我的函数存根不接受任何参数,因为我知道我要检查的文件。

我正在尝试为此函数编写测试,以检查不同SomeFile.conf文件的行为,但我不知道如何执行此操作。可以在setup和teardown测试函数中更改SomeFile.conf,但这似乎是一种不好的测试方法。我是否应该更改函数以便它只是为了测试而接受文件参数?

2 个答案:

答案 0 :(得分:1)

您测试的代码和您运行的代码应该相同。

我不建议使用文件名,因为现在您正在处理(在一个函数中)打开文件 - 以及与该部分相关的错误,然后确认文件格式(函数的实际目的)。 / p>

听起来我的功能是检查文件内容是否包含特定字符串。因此,此函数应该采用任何类型的内容元素(可迭代),然后只要找不到键字符串,该函数应该返回None / False / Fail条件 - 并且您的测试应该检查它。

答案 1 :(得分:0)

很有可能将函数定义为

def checkline_in_file(filename="SomeFile.conf"):

使用文件名的默认值。在测试中,它可以被覆盖。在制作中你不需要给它一个参数。

稍后,当phb决定所有文件扩展名必须包含3个字符时,这是一个字符更改。