【发布时间】:2023-03-08 21:18:01
【问题描述】:
我向this 询问了有关如何编写 pytest 来检查stdout 中的输出的问题并得到了解决方案。现在我需要写一个test case,以检查内容是否写入文件以及内容是否按预期写入
例如:
def writetoafile():
file = open("output.txt",w)
file.write("hello\n")
file.write("world\n")
file.close()
现在是一个 pytest 函数来检查它是否写了:
def test_writeToFile():
file = open("ouput.txt",'r')
expected = "hello\nworld\n"
assert expected==file.read()
虽然这似乎可行,但我认为这并不理想,尤其是硬编码。这种写文件的test functions通常是怎么写的?
【问题讨论】:
-
为什么这不理想?您写道您想检查内容是否按预期写入,因此查看文件并检查似乎是最好的选择。您总是可以用一系列随机字符创建一个变量并检查它是否写入成功;您可以检查“expected in file.read()”以查看是否附加了数据(但您使用了标志 'w',所以这是一个糟糕的测试);等等。如果不是这个,你想测试什么?也许知道你想要什么才是真正的问题,就像在大多数测试中一样。
标签: python function file-io pytest