http://www.drdobbs.com/testing/unit-testing-with-python/240165163
http://blog.jobbole.com/55180/
1.import unittest
2.定义一个继承自unittest.TestCase的测试用例类
3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。
4.定义测试用例,名字以test开头。
5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
6.调用unittest.main()启动测试
7.如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。
如果你有这么一段代码
#coding=utf-8 def is_prime(number): if number < 2: return False for element in range(2, number): if number % element == 0: return False return True def print_next_prime(number): index = number while True: index += 1 if is_prime(index): print index
可以使用这样的测试代码
#coding=utf-8 import unittest from primes import is_prime class PrimeTestCase(unittest.TestCase): def test_is_five_prime(self): self.assertTrue(is_prime(5)) def test_is_four_non_prime(self): self.assertFalse(is_prime(4), msg="Four is not prime") def test_is_zero_not_prime(self): self.assertFalse(is_prime(0)) def test_negative_number(self): for index in range(-1, -10, -1): self.assertFalse(is_prime(index)) if __name__ == "__main__": unittest.main()
下面是unittest模块的常用方法:
assertEqual(a, b) a == b
assertNotEqual(a, b) a != b
assertTrue(x) bool(x) is True
assertFalse(x) bool(x) is False
assertIs(a, b) a is b 2.7
assertIsNot(a, b) a is not b 2.7
assertIsNone(x) x is None 2.7
assertIsNotNone(x) x is not None 2.7
assertIn(a, b) a in b 2.7
assertNotIn(a, b) a not in b 2.7
assertIsInstance(a, b) isinstance(a, b) 2.7
assertNotIsInstance(a, b) not isinstance(a, b) 2.7
https://docs.djangoproject.com/en/1.5/topics/testing/overview/
django的单元测试