我最近的任务是教小学三年级孩子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 )
但我知道这不正确。如果有人能帮我找到如何检查输出会很棒。
答案 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)