第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊模塊的單元測試

單擊模塊的單元測試

桃花長相依 2021-08-11 16:41:00
我編寫了一個簡單的命令行實用程序,它接受一個文本文件并使用 click 模塊在其中搜索給定的單詞。sfind.pyimport click@click.command()@click.option('--name', prompt='Word or string')@click.option('--filename', default='file.txt', prompt='file name')@click.option('--param', default=1, prompt="Use 1 for save line and 2 for word, default: ")def find(name, filename, param):    """Simple program that find  word or string at text file and put it in new"""    try:        with open(filename) as f, open('result.txt', 'w') as f2:            count = 0            for line in f:                if name in line:                    if param == 1:                        f2.write(line + '\n')                    elif param == 2:                        f2.write(name + '\n')                    count += 1            print("Find: {} sample".format(count))            return count    except FileNotFoundError:        print('WARNING! ' + 'File: ' + filename + ' not found')if __name__ == '__main__':    find()現(xiàn)在我需要使用 unittest 編寫一個測試(需要使用 unittest)。test_sfind.pyimport unittestimport sfindclass SfindTest(unittest.TestCase):    def test_sfind(self):        self.assertEqual(sfind.find(), 4)if __name__ == '__main__' :    unittest.main()當我運行測試時:python -m unittest test_sfind.py我收到一個錯誤click.exceptions.UsageError:有意外的額外參數(shù)(test_sfind.py)如何測試此單擊命令?
查看完整描述

2 回答

?
手掌心

TA貢獻1942條經(jīng)驗 獲得超3個贊

您不能簡單地調(diào)用單擊命令然后期望它返回。用于創(chuàng)建單擊命令的裝飾器極大地改變了函數(shù)的行為。幸運的是,單擊框架通過CliRunner類提供了這一點。

您的命令可以通過 unittest 進行測試,如下所示:

import unittestimport sfindfrom click.testing import CliRunnerclass TestSfind(unittest.TestCase):
    def test_sfind(self):
        runner = CliRunner()
        result = runner.invoke(
            sfind.find, '--name url --filename good'.split(), input='2')
        self.assertEqual(0, result.exit_code)
        self.assertIn('Find: 3 sample', result.output)


查看完整回答
反對 回復(fù) 2021-08-11
  • 2 回答
  • 0 關(guān)注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號