我想在pytest测试中使用stdin

Rus*_*der 9 python pytest

PyTest文档指出,stdin重定向为null,因为没有人希望在批处理测试环境中进行交互式测试。的确如此,但是交互式并不是stdin的唯一用途。我想测试使用stdin的代码,就像使用其他文件一样。我对捕获stdout和sterr感到满意,但是如何以符合PyTest的方式实际将stdin连接到io.StringIO对象呢?

Sto*_*ica 11

您可以嘲笑它

def test_method(monkeypatch):
    monkeypatch.setattr('sys.stdin', io.StringIO('my input'))
    # test code
Run Code Online (Sandbox Code Playgroud)