java unit test 例子_unittest一个简单的例子

unittest模块为构造和运行测试提供了丰富的工具集。这一节演示了工具的一小部分满足大多数用户的需求。

下面是一个测试三个字符串方法的简短脚本:

import unittest

class TestStringMethods(unittest.TestCase):

def test_upper(self):

print("test_upper")

self.assertEqual('foo'.upper(), 'FOO')

def test_isupper(self):

print("test_isupper")

self.assertTrue('FOO'.isupper())

self.assertFalse('Foo'.isupper())

def itest_split(self):

print("test_split")

s = 'hello world'

self.assertEqual(s.split(), ['hello', 'world'])

# check that s.split fails when the separator is not a string

with self.assertRaises(TypeError):

s.split(2)

if __name__ == '__main__':

unittest.main()

一个testcase是通过子类化unittest.testcase创建的。三个单独的测试用方法定义,这些方法的名字从字母test开始。这个命名约定通知测试运行者,哪些方法表示测试。

每个测试的关键是调用assertEqual()来检查预期的结果;assertTrue() 或assertFalse()来验证一个条件;或者assertRaises()来验证一个特定的异常是否会被提高。这些方法被使用而不是断言语句,因此测试运行器可以积累所有的测试结果并生成一个报告。

setUp()和tearDown()方法允许您定义在每个测试方法之前和之后执行的指令。在组织测试代码的部分中,将详细介绍它们。

最后一个块显示了运行测试的简单方法。main()为测试脚本提供了一个命令行界面。当从命令行运行时,上面的脚本会生成如下输出:

158d9c2063c833678e176a797c5ac9fd.png

如果将test_upper的名字改为pest_upper,这个用例将不会被执行,说明只执行test开头的用例

除了unittest.main(),还有其他一些方法可以使用更细的控制级别来运行测试,不那么简洁的输出,也不需要从命令行运行。例如,最后两行可能被替换为:

suite = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)

unittest.TextTestRunner(verbosity=2).run(suite)

输出为:

19aadfdbb978e7ba650f2b9c0ef7ba40.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值