用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”,然后根據用戶的輸入創建一個網格(新行上的每一行….),然后執行一個計算網格上的內容的函數并返回結果。這一切都很好,但是現在我需要為它創建幾個測試用例(根據預期的輸出測試不同的輸入)。在
首先,我嘗試了:(在一個單獨的.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()
不幸的是,盡管它通過了測試,但我發現它總是接受輸入的第一個字母/數字,當它與預期輸出進行比較時。所以,我認為這和我需要輸入的多個值有關。我試著在不同的輸入(input1+input2+input3)上分離它們,但還是沒用。在
如果有人能給我一些建議,我將非常感激!提前謝謝你!在
總結
以上是生活随笔為你收集整理的用python做问答测试_测试用户输入Python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql events_mysql定时
- 下一篇: java 深克隆_Java实现深克隆的两