python3对照值检查打印输出

2024-04-24 09:00:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近的任务是教小学生python3,我很好,但仍在学习。我想对我来说最简单的方法就是使用复制课堂版,允许学生在家里使用。包含在复制教室是一个自动阅卷系统,您可以使用unittest检查他们的代码是否正确。我已经研究出如何检查变量是否正确,但是我很难检查输出。他们写的代码如下

a = 5
b = 10

print( a + b )

我要做的是检查他们是否正在打印15。到目前为止,我已经尝试了以下方法,我已经导入了sys,unittest函数已经由创建复制所以我可以操纵这个函数。你知道吗

def test_output(self):
    output = sys.stdout
    self.assertEqual( output, 25 )

但我知道这是不对的。如果有人能帮我找到如何检查输出,那就太好了。你知道吗


Tags: 方法函数代码testselfoutput系统def
1条回答
网友
1楼 · 发布于 2024-04-24 09:00:00

我会尝试模仿或修补内置的打印功能。然后在mock上断言它是用正确的参数调用的。 这也许是不可能的复制不过。你能为你的测试访问一些设置/拆卸机制吗?你知道吗

修补程序如下所示:

@mock.patch('builtins.print')
def test_some(self, mock_print)
    ...would expect call to pupil code here
    mock_print.assert_called_once_with (... your expectation)

相关问题 更多 >