单元测试保护了 python 中的 class 方法?

unit testing protected class methods in python?

我正在尝试导入 class,然后通过传入值 'stage'、'prod' 来测试 class 的方法 (production_warning)看看它是否 returns 预期的结果。

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

我在这里使用断言显然是完全错误的,我该如何正确地完成我想用断言做的事情。

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

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