python 3根据值检查打印输出

时间:2016-12-09 16:26:09

标签: python python-3.x

我最近的任务是教小学三年级孩子python 3,我很好,但我还在学习。我认为对我来说最简单的事情就是使用repl.it教室版,以便学生可以在家中访问它,如果他们想要的话。 repl.it教室中包含一个自动标记系统,您可以使用unittest检查其代码是否正确。我已经弄清楚如何检查变量是否正确,但我检查输出有困难。他们正在编写的代码如下

a = 5
b = 10

print( a + b )

我需要做的是检查它们是否正在打印15.到目前为止我已经尝试了以下内容,我已经导入了sys并且已经通过repl.it创建了unittest函数,所以它只是我可以操作的这个函数。

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

但我知道这不正确。如果有人能帮我找到如何检查输出会很棒。

1 个答案:

答案 0 :(得分:0)

我会尝试模拟或修补内置打印功能。然后在模拟器上声明它是用正确的参数调用的。 但是,对于repl.it来说这可能是不可能的。你能为你的测试访问一些设置/拆卸机制吗?

补丁看起来像这样:

@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)