【问题标题】:python 3 checking print output against a valuepython 3根据值检查打印输出
【发布时间】:2016-12-09 16:26:09
【问题描述】:

我最近的任务是教小学生 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 )

但我知道这是不正确的。如果有人可以帮助我找到如何检查输出,那就太好了。

【问题讨论】:

标签: python python-3.x


【解决方案1】:

我会尝试模拟或修补内置打印功能。然后在模拟上断言它是用正确的参数调用的。 不过,这对于 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)

【讨论】:

  • 是的,我可以使用可以编辑的设置和拆卸功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 2019-02-24
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 2020-11-05
相关资源
最近更新 更多