单元测试python中受保护的类方法?

时间:2016-03-21 19:08:25

标签: python unit-testing assert

我正在尝试导入一个类,而不是通过传入值'stage','prod'来测试该类中的方法(production_warning),看它是否返回预期的结果。

import runner
test=runnerData(force_redeploy=False, pfactor=None, preview=True)

def production_warning_test():
    assert.test.production_warning('stage') not errors
    assert.test.production_warning('prod') contains "warning"

#run unit test
productionwarningtest()

我显然在这里使用断言完全错误,我如何正确完成我正在尝试使用断言。

1 个答案:

答案 0 :(得分:1)

要使用断言执行此操作,您需要将断言语句更改为:

assert test.production_warning('stage') is not errors
assert test.production_warning('prod') contains "warning"

我强烈建议您查看python unit test模块。

在这种情况下,您需要这样的东西(注意,runnerData需要在范围内,我只是从上面的问题中复制):

import runner
import unittest

class TestRunner(unittest.TestCase):

  def setUp(self):
      self.test = runnerData(force_redeploy=False, pfactor=None, preview=True) 

  def test_production_warning(self):
      self.assertTrue(self.test.production_warning('stage') is not errors)
      self.assertTrue(self.test.production_warning('prod') contains "warning")

if __name__ == '__main__':
    unittest.main()