用python做问答测试_测试用户输入Python
我在用Python測試代碼的輸入時遇到了問題。我嘗試了幾個解決方案,但有一些東西我遺漏了,所以如果你能給我一些建議,我將不勝感激。在
首先,這里是我要測試的主代碼文件的一個片段:if __name__ == '__main__':
n = int(input())
m = int(input())
grid = []
for _ in range(n):
grid.append(list(map(str, input().rstrip().split())))
calculate(grid)
當我運行我的代碼時,我輸入“n”,然后輸入“m”,然后根據(jù)用戶的輸入創(chuàng)建一個網(wǎng)格(新行上的每一行….),然后執(zhí)行一個計算網(wǎng)格上的內(nèi)容的函數(shù)并返回結(jié)果。這一切都很好,但是現(xiàn)在我需要為它創(chuàng)建幾個測試用例(根據(jù)預(yù)期的輸出測試不同的輸入)。在
首先,我嘗試了:(在一個單獨的.py文件中)
^{pr2}$
然后我研究了更多的選項,我嘗試了這個選項,這讓我最接近:import unittest
import os
class Test1(unittest.TestCase):
def test_case1(self):
input = "2\n2\nR G B\nR G B"
expected_output = '2'
with os.popen("echo " + input + "' | python main_file.py") as o:
output = o.read()
output = output.strip() # Remove leading spaces and LFs
self.assertEqual(output, expected_output)
if __name__ == '__main__':
unittest.main()
不幸的是,盡管它通過了測試,但我發(fā)現(xiàn)它總是接受輸入的第一個字母/數(shù)字,當它與預(yù)期輸出進行比較時。所以,我認為這和我需要輸入的多個值有關(guān)。我試著在不同的輸入(input1+input2+input3)上分離它們,但還是沒用。在
如果有人能給我一些建議,我將非常感激!提前謝謝你!在
總結(jié)
以上是生活随笔為你收集整理的用python做问答测试_测试用户输入Python的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql events_mysql定时
- 下一篇: websocket python爬虫_p