[英]How to Python Unit Test
我想进入python的单元测试,但在寻找解决以下问题的方法时遇到了麻烦( 源 )。
我们有两个函数,is_prime和print_next_prime。 如果我们想测试print_next_prime,则需要确保is_prime是正确的,asprint_next_prime会使用它。 在这种情况下,函数print_next_prime是一个单元,而is_prime是另一个单元。 由于单元测试一次只能测试一个单元,因此我们需要仔细考虑如何才能准确地测试print_next_prime。
def is_prime(number):
"""Return True if *number* is prime."""
for element in range(number):
if number % element == 0:
return False
return True
def print_next_prime(number):
"""Print the closest prime number larger than *number*."""
index = number
while True:
index += 1
if is_prime(index):
print(index)
您将如何为这两种方法编写单元测试? 不幸的是,消息来源从未给出这个问题的答案。
该代码已在该博客的后续部分修复,首先您必须定义is_prime
#primes.py
def is_prime(number):
"""Return True if *number* is prime."""
if number <= 1:
return False
for element in range(2, number):
if number % element == 0:
return False
return True
这是一个案例test_is_five_prime
的单元测试案例。 还有其他示例,例如test_is_four_non_prime
, test_is_zero_not_prime
。 同样,您可以为其他函数print_next_prime
编写测试。 您可以用相同的方式尝试。
#test_primes.py
import unittest
from primes import is_prime
class PrimesTestCase(unittest.TestCase):
"""Tests for `primes.py`."""
def test_is_five_prime(self):
"""Is five successfully determined to be prime?"""
self.assertTrue(is_prime(5))
if __name__ == '__main__':
unittest.main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.