簡體   English   中英

如何進行Python單元測試

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM