推荐答案
-- -------------------- ---- ------- ------ -------- ----- ------------------------------------- --- ----------------- ------------------------------- ------ --- ------------------- -------------------------------- --------------------------------- --- ----------------- - - ------ ------ --------------------------- --------- --------- - ----- ---- ------- ----- ---- --- --------- -- --- - ------ ---- ----------------------------- ---------- -- -------- -- ----------- ---------------
本题详细解读
1. 导入 unittest
模块
首先需要导入 unittest
模块,这是 Python 标准库中的一个单元测试框架。
import unittest
2. 创建测试类
创建一个继承自 unittest.TestCase
的测试类。在这个类中,你可以定义多个测试方法。
class TestStringMethods(unittest.TestCase):
3. 定义测试方法
每个测试方法必须以 test_
开头,这样 unittest
才能识别并运行这些方法。在测试方法中,使用 self.assertEqual()
、self.assertTrue()
等断言方法来验证代码的行为是否符合预期。
-- -------------------- ---- ------- --- ----------------- ------------------------------- ------ --- ------------------- -------------------------------- --------------------------------- --- ----------------- - - ------ ------ --------------------------- --------- --------- ---- ----------------------------- ----------
4. 运行测试
在脚本的最后,使用 unittest.main()
来运行测试。当脚本直接运行时,unittest.main()
会自动查找并运行所有以 test_
开头的测试方法。
if __name__ == '__main__': unittest.main()
5. 运行结果
运行上述代码后,unittest
会输出测试结果。如果所有测试都通过,输出类似于:
... ---------------------------------------------------------------------- Ran 3 tests in 0.001s OK
如果有测试失败,unittest
会输出详细的错误信息,帮助你定位问题。
6. 常用断言方法
self.assertEqual(a, b)
:检查a == b
self.assertTrue(x)
:检查x
是否为True
self.assertFalse(x)
:检查x
是否为False
self.assertRaises(exception, callable, *args, **kwargs)
:检查callable
是否抛出了指定的异常
7. 测试套件
你可以使用 unittest.TestSuite
来组织多个测试类或测试方法,并控制它们的执行顺序。
suite = unittest.TestSuite() suite.addTest(TestStringMethods('test_upper')) suite.addTest(TestStringMethods('test_isupper')) unittest.TextTestRunner().run(suite)
8. 测试发现
unittest
支持自动发现测试文件和方法。你可以使用以下命令来自动发现并运行测试:
python -m unittest discover
这个命令会自动查找当前目录及其子目录中所有以 test_
开头的文件,并运行其中的测试方法。