单元测试保护了 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()
我正在尝试导入 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()