簡體   English   中英

如何在 python 中為這個特定函數編寫單元測試?

[英]How to write unit test for this particular function in python?

文件downloadModule中有一個函數result = Downloader.downloadFiles(list_to_download, download_path, username, password) ,它將返回一個 boolean(True/False) 到 'result' 變量。 如何為此調用編寫模擬,以便result始終返回 True。 嘗試了以下方式但得到以下錯誤AttributeError: 'function' object has no attribute 'rsplit'

@patch(downloadModule.Downloader.downloadFiles)
def test_download_files(self,mock_download_files):
        mock_download_files.return_value = True
        self.assertEqual(downloadModule.Downloader.downloadFiles(),True)

缺少引號

我認為您只需添加引號 ( ' ) 作為補丁參數downloadModule.Downloader.downloadFiles的定界符。

您的代碼變為以下內容:

@patch('downloadModule.Downloader.downloadFiles')
def test_download_files(self,mock_download_files):
        mock_download_files.return_value = True
        self.assertEqual(downloadModule.Downloader.downloadFiles(),True)

完整的測試文件

下面我顯示了測試文件,其中存在語句:

import downloadModule

導入模塊downloadModule 以下是我在我的系統上使用的完整測試文件:

import unittest
from unittest.mock import patch
import downloadModule

class MyTestCase(unittest.TestCase):

    @patch('downloadModule.Downloader.downloadFiles')
    def test_download_files(self, mock_download_files):
        mock_download_files.return_value = True
        self.assertEqual(downloadModule.Downloader.downloadFiles(), True)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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