当前位置: 首页 > 知识库问答 >
问题:

如何在Python中使用Unittest断言整数在范围内?[副本]

陶成济
2023-03-14

我有一份文件来验证标签

#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超出范围,例如fn0fn100,则失败。我写了一个测试类

#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之间?

感谢您的帮助。

共有2个答案

马新觉
2023-03-14

另一个解决办法是:

https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertIn

self.assertIn(fn, range(1, 100))
陆绍辉
2023-03-14
self.assertTrue( 0<=y<=99)

其中y是要检查的fn的值。

然而,我不明白你的问题和你的代码有什么关系。在代码中,您断言fn(i)有一个特定的值(取自名为output的列表,该列表未在其他地方定义),其中i取1到98之间的每个值。

但是在你的问题中,你问的是断言值在这些数字之间。

 类似资料:
  • 问题内容: 有没有一种方法可以在不执行此冗余代码的情况下测试范围: ? 就像一个函数: 用法: ? PHP是否具有这种内置功能?还是其他方式可以做到? 问题答案: 我认为您不会获得比您的功能更好的方法。 它是干净的,易于遵循和理解的,并返回条件的结果(无混乱)。

  • 问题内容: 在Python中,有没有一种方法可以获取可以使用的最大整数?是否有一些像INT_MAX这样的预定义常量? 问题答案: Python具有任意精度的整数,因此没有真正的固定最大值。您仅受可用内存的限制。 在Python 2中,有两种类型,int和long。ints使用C类型,而longs是任意精度。您可以使用查找最大值int。但是int会自动将提升为long,因此您通常不必担心: 工作正常

  • 这会产生以下错误: 所以我需要小数的范围 但它不接受int值

  • 我想用“IntStream”来执行后范围。 所以,普通看起来像: 但是我需要,像这样: 如何实现?

  • 问题内容: 我设法绘制了数据,并想为其添加背景图像(地图)。数据是按长/纬度值绘制的,我也具有图像三个角(左上角,右上角和左下角)的长/纬度值。 我试图弄清楚如何在imshow中使用’extent’选项。但是,我发现的示例并未说明如何为每个角指定x和y(在我的情况下,我具有三个角的信息)。 将图像添加到绘图中时,如何为图像指定三个角的位置? 谢谢 问题答案: 在当前轴的坐标中指定要粘贴图像的矩形的

  • 问题内容: 我想将数字限制在一定范围内。目前,我正在执行以下操作: 这样可以将其保留在和中,但看起来不太好。我怎样才能做得更好? PS:仅供参考,我正在使用Python 2.6。 问题答案: def clamp(n, minn, maxn): return max(min(maxn, n), minn) 或功能等效: 现在,您使用: 或者说得很清楚: 更清晰: