[英]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.