【问题标题】:Doctest expects nothing, but file.write() outputs somethingDoctest 什么都不期望,但 file.write() 输出一些东西
【发布时间】:2020-07-29 19:25:21
【问题描述】:

我正在为一个程序运行一个简单的 doctest,部分测试是将 1,000 个空行写入一个文本文件。

>>> NUMLINES = 1000
>>> with open(file_path, "w") as f: f.write("blankline\\n"*NUMLINES)
>>> some_function(arg)

Doctest 不期望任何内容,但写入文件会以某种方式产生整数 10,000。

Failed example:
    with open(status_path,"w") as f: f.write("blankline\n"*NUMLINES)
Expected nothing
Got:
    10000

我不知道 10,000 来自哪里,这甚至不是我正在测试的东西。有什么想法吗?

更新:

似乎返回的值是写入文本文件的所有字符的总和。 len("blankline\n") * NUMLINES = 10,000

【问题讨论】:

  • 这是f.write() 返回的值。

标签: python doctest


【解决方案1】:

你的测试是错误的。 f.write() 返回一些东西:

write(s)

将字符串s写入流并返回写入的字符数。

关于继承的注意事项:open(mode="w") 返回一个io.TextIOWrapper 的实例,它继承自io.TextIOBase,它提供了write 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多