我有一个文件可以验证标签
#configmanager.py
class FunctionNode(object):
def __validate_func_label(self, func_label):
pattern = re.compile('^fn[1-9][0-9]{0,1}$')
if not pattern.match(func_label):
raise Exception(
f"Invalid value {func_label} for function label in function config.")
,我必须使用单元测试为它编写一个测试用例。测试用例将检查用户输入的fn
是否在1到99之间,它将通过。否则,如果fn
超出范围,例如fn0
或fn100
,则它将失败。我写了一个TestClass
#test__validate_func_label.py
import unittest
from configmanager import FunctionNode
class TestValidateFuncLabel(unittest.TestCase):
def setUp(self):
pass
def test_fn_within_range(self):
for i in range(1,99):
self.assertEqual(fn(i),output[i])
if __name__ == "__main__":
unittest.main()
但是我觉得我走错了路。
我有什么办法可以断定fn
的范围是1到99?
感谢您的帮助。
答案 0 :(得分:1)
self.assertTrue( 0<=y<=99)
其中y
是您要检查的fn
的值。
但是,我不明白您的问题与代码之间的关系。在您的代码中,您断言fn(i)
具有特定值(取自名为output
的列表,该列表未在其他地方定义),其中i
的取值范围是1到98。>
但是在您的问题中,您要求断言一个值介于这些数字之间。
答案 1 :(得分:0)
另一个解决方案是:
https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIn
self.assertIn(fn, range(1, 100))