doctest vs unittest

divisors.py

def get_divisors(num, possible_divisors):
    ''' (int, list of int) -> list of int

    Return a list of the values from possible_divisors
    that are divisors of num.

    >>> get_divisors(8, [1, 2, 3])
    [1, 2]
    >>> get_divisors(4, [-2, 0, 2])
    [-2, 2]
    '''

    divisors = []
    for item in possible_divisors:
        if item != 0 and num % item == 0:
            divisors.append(item)

    return divisors


if __name__ == '__main__':
    import doctest
    doctest.testmod()

这里使用了doctest来测试例子。

test_divisors.py

import unittest
import divisors


class TestDivisors(unittest.TestCase):
    """Example unittest test methods for get_divisors."""

    def test_divisors_example_1(self):
        """Test get_divisors with 8 and [1, 2, 3]."""

        actual = divisors.get_divisors(8, [1, 2, 3])
        expected = [1, 2]
        self.assertEqual(expected, actual)

    def test_divisors_example_2(self):
        """Test get_divisors with 4 and [-2, 0, 2]."""

        actual = divisors.get_divisors(4, [-2, 0, 2])
        expected = [-2, 2]
        self.assertEqual(expected, actual)


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

unittest可以让你避免在程序中写过多的例子而降低程序的可读性。unittest顾名思义,就是单元测试。另外unittest会得出更多的信息。

你可能感兴趣的:(doctest vs unittest)