如何在python中处理单元测试异常

2024-06-16 11:13:48 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码是测试原始代码的单元测试代码

import unittest
from drones import Drone, DroneStore

class DroneTest(unittest.TestCase):
def test_add_success(self):
    drone = Drone('Drone1', 1, False)
    store = DroneStore()
    store.add(drone)
    self.assertEqual(drone, store.get(1))
    print(store.get(1).name)


def test_add_raiseException_true(self):
    drone = Drone('Drone1', 1, False)
    store = DroneStore()
    store.add(drone)
    self.assertEqual(drone, store.get(1))

    with self.assertRaises(Exception) as context:
        store.add(drone)
    self.assertTrue('Drone already exists in store' in str(context.exception)


def test_remove_success(self):
    drone = Drone('Drone1', 1, False)
    store = DroneStore()
    store.add(drone)
    self.assertEqual(drone, store.get(1))
    print(store.get(1).name)

    store.remove(drone)

if __name__ == '__main__':
    unittest.main()

这是我得到的部分原始代码:ScreenShot

看起来我从名为“test\u add\u raiseException\u true”的函数中得到了错误,创建此函数是为了测试如果存储中已经存在无人机,则原始代码中的“add”函数是否会引发异常


Tags: store代码nametestselfaddfalseget