python断言区间_断言整数在范围内
我認為在內部使用assertTrue進行比較不是一個好主意-
這樣,您將丟失失敗消息中的任何信息:AssertionError: False is not true
這一點都沒有幫助,你基本上回到了“原始的”assert并且你失去了很多unittest方法的好處。
我建議:
創建自己的自定義斷言
您可以在其中打印更有意義的消息。例如:import unittest
class BetweenAssertMixin(object):
def assertBetween(self, x, lo, hi):
if not (lo <= x <= hi):
raise AssertionError('%r not between %r and %r' % (x, lo, hi))
class Test1(unittest.TestCase, BetweenAssertMixin):
def test_between(self):
self.assertBetween(999, 998, 1000)
def test_too_low(self):
self.assertBetween(997, 998, 1000)
def test_too_high(self):
self.assertBetween(1001, 998, 1000)
if __name__ == '__main__':
unittest.main()
然后您將得到以下輸出(縮寫):======================================================================
FAIL: test_too_high (__main__.Test1)
----------------------------------------------------------------------
Traceback (most recent call last):
File "example.py", line 19, in test_too_high
self.assertBetween(1001, 998, 1000)
File "example.py", line 8, in assertBetween
raise AssertionError('%r is not between %r and %r' % (x, lo, hi))
AssertionError: 1001 is not between 998 and 1000
======================================================================
FAIL: test_too_low (__main__.Test1)
----------------------------------------------------------------------
Traceback (most recent call last):
File "example.py", line 16, in test_too_low
self.assertBetween(997, 998, 1000)
File "example.py", line 8, in assertBetween
raise AssertionError('%r is not between %r and %r' % (x, lo, hi))
AssertionError: 997 is not between 998 and 1000
----------------------------------------------------------------------
或者使用assertLessEqual和assertGreaterEqual
如果不需要自定義斷言(它確實添加了另一條回溯記錄和幾行代碼):...
def test_no_custom_assert(self):
my_integer = 100
self.assertGreaterEqual(my_integer, 998)
self.assertLessEqual(my_integer, 1000)
...
比assertTrue(998 <= my_integer <= 1000)長一點(如果只使用一次的話,總長度可能比添加自定義斷言短),但是仍然會收到很好的失敗消息(也沒有附加的回溯記錄):======================================================================
FAIL: test_no_custom_assert (__main__.Test1)
----------------------------------------------------------------------
Traceback (most recent call last):
File "example.py", line 23, in test_no_custom_assert
self.assertGreaterEqual(my_integer, 998)
AssertionError: 100 not greater than or equal to 998
總結
以上是生活随笔為你收集整理的python断言区间_断言整数在范围内的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编程用户登陆c_django
- 下一篇: websocket python爬虫_p