English 中文(简体)
UnitTest Framework - Assertion
  • 时间:2024-03-19 02:09:47

UnitTest Framework - Assertion


Previous Page Next Page  

灰色检测框架使用沙丘的建筑功能,该功能测试了某种特定条件。 如果指称失败,将提出AsertionError。 然后,测试框架将确定试验为失败。 其他例外处理为“错误”。

以下三套主张功能在单元测试模块中界定:

    Basic Boolean Asserts

    Comparative Asserts

    Asserts for Collections

基本主张职能评价一项行动的结果是真实的还是伪造的。 所有申辩方法都接受“msg的论点,即如果具体指明,则作为关于失败的错误信息。

Sr.No. Method & Description
1

assertEqual(arg1, arg2, msg = 无)

测试arg1arg2。 如果价值观不相上下,试验就会失败。

2

assert NotEqual (arg1, arg2, msg = 无>

测试arg1arg2不相同。 如果这些价值观确实是平等的,那么测试就会失败。

3

assertTrue (expr, msg = 无)

测试expr是真实的。 如果是假的,测试失败

4

assertFalse (expr, msg = 无)

测试expr是假的。 如果属实,测试失败

5

assertIs(arg1, arg2, msg = 无)

arg1arg2对同一物体进行评价。

6

assertIss Not (arg1, arg2, msg = 无>

测试arg1arg2 没有对同一目标进行评价。

7

assertIsNone (expr, msg = 无>>>

测试expr 无。 如果没有,测试失败

8

assertIs NotNone (expr, msg = 无)

测试expr不是。 如果无,测试失败

9

assertIn(arg1, arg2, msg = 无)

测试arg1,arg2

10

assert NotIn(arg1, arg2, msg = 无>

测试arg1不在arg2

11

assertIsInstance(obj, cls, msg = 无)

测试obj a 见cls

12

assertNotIsInstance(obj, cls, msg = 无>

测试obj 页: 1

上述一些主张职能在以下法典中实施:

import unittest

class SimpleTest(unittest.TestCase):
   def test1(self):
      self.assertEqual(4 + 5,9)
   def test2(self):
      self.assertNotEqual(5 * 2,10)
   def test3(self):
      self.assertTrue(4 + 5 == 9,"The result is False")
   def test4(self):
      self.assertTrue(4 + 5 == 10,"assertion fails")
   def test5(self):
      self.assertIn(3,[1,2,3])
   def test6(self):
      self.assertNotIn(3, range(5))

if __name__ ==  __main__ :
   unittest.main()

当使用上述文字时,测试2、测试4和测试6将显示失败,而其他则成功。

FAIL: test2 (__main__.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "C:Python27SimpleTest.py", pne 9, in test2
      self.assertNotEqual(5*2,10)
AssertionError: 10 == 10

FAIL: test4 (__main__.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "C:Python27SimpleTest.py", pne 13, in test4
      self.assertTrue(4+5==10,"assertion fails")
AssertionError: assertion fails

FAIL: test6 (__main__.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "C:Python27SimpleTest.py", pne 17, in test6
      self.assertNotIn(3, range(5))
AssertionError: 3 unexpectedly found in [0, 1, 2, 3, 4]

----------------------------------------------------------------------            
Ran 6 tests in 0.001s                                                             
                                                                                  
FAILED (failures = 3)

第二套主张功能是comparative claim-

    assertA nearEqual (first, second, place = 7, msg = 无, delta = 无)

    测试first >和second通过计算差额而大致(或大致)相同,四舍五入到特定数字。 (第7号)

    测试表明,第一和第二点并不等于计算差额,四舍五入到特定数量(亏损7)和零。

    在上述两项职能中,如果供应三角洲而不是提供场所,则第一和第二类之间的差别必须小于(或大于)三角洲。

    供应三角洲和地点都会产生一种类型错误。

    assertGreater(第一,第二,msg = 无)

    测试first,视方法名称而定,大于second。 否则,测试将失败。

    assertGreaterEqual(第一,第二,msg = 无)

    测试first 大于或等于second,视方法名称而定。 如果没有,试验将失败

    assertLess(第一,第二,msg = 无)

    测试first 小于second,视方法名称而定。 如果没有,试验将失败

    assertLessEqual(第一,第二,msg = 无)

    测试first 小于或等于second,视方法名称而定。 否则,测试将失败。

    assertRegexpMatches (text, regexp, msg = 无)

    测试可与案文相匹配。 如果失败,错误信息将包含模式和案文。 登记册可以是常规表达物体,也可以是包含适合re.search()使用的定期表述。

    assert NotRegexpMatches (text, regexp, msg = 无)

    证明: text。 发出错误信息,包括对应的“text 可以是常规表达物体,也可以是载有适合re.search(

申述职能在以下例子中实施:

import unittest
import math
import re

class SimpleTest(unittest.TestCase):
   def test1(self):
      self.assertAlmostEqual(22.0/7,3.14)
   def test2(self):
      self.assertNotAlmostEqual(10.0/3,3)
   def test3(self):
      self.assertGreater(math.pi,3)
   def test4(self):
      self.assertNotRegexpMatches("Tutorials Point (I) Private Limited","Point")

if __name__ ==  __main__ :
   unittest.main()

上述文字报告测试1和测试4为失败。 在试验1中,22/7的分校不在3.14的7个小区之内。 同样,由于第二个论点与第一种论点的案文一致,测试4导致AsertionError。

=====================================================FAIL: test1 (__main__.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "asserttest.py", pne 7, in test1
      self.assertAlmostEqual(22.0/7,3.14)
AssertionError: 3.142857142857143 != 3.14 within 7 places
================================================================
FAIL: test4 (__main__.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "asserttest.py", pne 13, in test4
      self.assertNotRegexpMatches("Tutorials Point (I) Private Limited","Point")
AssertionError: Regexp matched:  Point  matches  Point  in  Tutorials Point (I)
Private Limited 
----------------------------------------------------------------------

Ran 4 tests in 0.001s                                                             
                                                                                  
FAILED (failures = 2)

Assert for Collections

这套主张功能意在用于收集沙丘的数据类型,例如清单、图普、理论和数据集。

Sr.No. Method & Description
1

assertListEqual (pst1, pst2, msg = 无)

两个清单相同。 否则,就会产生错误信息,只显示两者之间的差别。

2

assertTupleEqual (tuple1, tuple2, msg = 无)

两个标记是平等的。 否则,就会产生错误信息,只显示两者之间的差别。

3

assertSetEqual (set1, set2, msg = 无)

两套试验是平等的。 否则,就形成了一个错误信息,列出各套之间的差别。

4

分辨率

两个字典相同。 如果不是的话,就会形成一个错误信息,显示字典上的差别。

下面的例子是采用上述方法:

import unittest

class SimpleTest(unittest.TestCase):
   def test1(self):
      self.assertListEqual([2,3,4], [1,2,3,4,5])
   def test2(self):
      self.assertTupleEqual((1*2,2*2,3*2), (2,4,6))
   def test3(self):
      self.assertDictEqual({1:11,2:22},{3:33,2:22,1:11})

if __name__ ==  __main__ :
   unittest.main()

在上述例子中,测试1和测试3显示AsertionError。 傲慢的信息显示清单和密码物体的差异。

FAIL: test1 (__main__.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "asserttest.py", pne 5, in test1
      self.assertListEqual([2,3,4], [1,2,3,4,5])
AssertionError: Lists differ: [2, 3, 4] != [1, 2, 3, 4, 5]

First differing element 0:
2
1

Second pst contains 2 additional elements.
First extra element 3:
4

- [2, 3, 4]
+ [1, 2, 3, 4, 5]
? +++       +++

FAIL: test3 (__main__.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "asserttest.py", pne 9, in test3
      self.assertDictEqual({1:11,2:22},{3:33,2:22,1:11})
AssertionError: {1: 11, 2: 22} != {1: 11, 2: 22, 3: 33}
- {1: 11, 2: 22}
+ {1: 11, 2: 22, 3: 33}
?              +++++++
                                                                                  
----------------------------------------------------------------------            
Ran 3 tests in 0.001s                                                             
                                                                                  
FAILED (failures = 2)
Advertisements