python unittest setup,在setUp方法中报告Python unittest中的错误的正确方法是什么?

本文探讨了在Python单元测试中如何在setUp方法中正确使用assert确保测试前提条件。作者通过一个示例展示了当测试依赖的数据加载失败时,如何利用assert断言在setUp阶段捕获错误,从而避免因前置条件不满足导致的后续测试失败。测试用例中,作者首先检查测试数据是否加载成功,然后才进行实际的测试操作。当数据加载失败时,测试会立即停止并报告错误。
摘要由CSDN通过智能技术生成

我已经阅读了一些关于在

Python单元测试的setUp方法中使用assert的相互矛盾的建议.如果测试依赖的前提条件失败,我无法看到测试失败的危害.

例如:

import unittest

class MyProcessor():

"""

This is the class under test

"""

def __init__(self):

pass

def ProcessData(self, content):

return ['some','processed','data','from','content'] # Imagine this could actually pass

class Test_test2(unittest.TestCase):

def LoadContentFromTestFile(self):

return None # Imagine this is actually doing something that could pass.

def setUp(self):

self.content = self.LoadContentFromTestFile()

self.assertIsNotNone(self.content, "Failed to load test data")

self.processor = MyProcessor()

def test_ProcessData(self):

results = self.processor.ProcessData(self.content)

self.assertGreater(results, 0, "No results returned")

if __name__ == '__main__':

unittest.main()

这对我来说似乎是合理的事情,即确保测试能够运行.当由于设置条件而失败时,我们得到:

F

======================================================================

FAIL: test_ProcessData (__main__.Test_test2)

----------------------------------------------------------------------

Traceback (most recent call last):

File "C:\Projects\Experiments\test2.py", line 21, in setUp

self.assertIsNotNone(self.content, "Failed to load test data")

AssertionError: unexpectedly None : Failed to load test data

----------------------------------------------------------------------

Ran 1 test in 0.000s

FAILED (failures=1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值