有沒有人有任何成功或有任何想法是什麼將模擬條目(用於測試目的)到golang.org/x/crypto/ssh/terminal
包中的term.ReadPassword(int(os.Stdin.Fd()))
呼叫的最佳方式?嘲諷加密/ ssh /終端
我試圖創建一個臨時文件(VS os.Stdin
)和寫作一樣testing\n
或testing\r
到臨時文件的字符串值,但我得到的錯誤inappropriate ioctl for device
。我猜這是TTY相關的或缺少特定格式(?)的東西,但我真的不確定。
幫助讚賞。
你用什麼方式測試'terminal.ReadPassword'?您是否試圖向該包添加測試?該功能只能在終端上運行,所以如果您沒有終端,請不要使用該功能。 – JimB
我寫了一個使用該函數的庫。正試圖創建一個測試,主要是爲了確保我有全面的覆蓋,但它不是100%必要的。 我使用'bufio.Reader'進行常規輸入,我可以修改該文件來處理該測試用例,但'terminal.ReadPassword'似乎不能以相同的方式工作。 如果您有任何建議,圖書館就在這裏(並不意味着是一個插件):https://github.com/goposse/tardy – Luke
你只需要使用ReadPassword條件就有一個tty。你可以通過將它包裝在另一個函數中,像Corbin建議的那樣嘲笑一個PasswordReader,或者在if語句中添加另一個條件來檢查IsTerminal。 – JimB