我來自JS世界,我習慣於對可能由於弱類型而導致的所有可能情況進行徹底測試。這樣,在函數內部,我檢查所有傳入參數以符合某些標準。強類型和弱類型語言之間測試的差異
舉個例子,在function createUser(username, id, enabled, role){}
我會檢查是否username
是一個字符串,id
是UUID,status
是布爾和角色是必須是「管理員」,「用戶」或「系統」的字符串。
我爲這些情況創建測試,以確保當我傳遞錯誤的參數時,測試失敗,我需要找到導致此問題的錯誤。最後,我進行了很多測試,其中很多都是類型檢查測試。
現在,我正在玩強類型的Swift。我用它來創建一個客戶端應用程序,它使用來自NodeJS服務器端的數據。如果我想在Swift中創建一個類似的createUser()
函數,似乎我需要的測試少得多,因爲類型檢查是用語言本身的。
認爲基本上強類型語言需要比弱類型語言更少的測試是否正確?一些測試在Swift中似乎是不必要的,整個測試過程似乎更輕量化。
我可以通過以某種特定方式使用語言構造來編寫更少的測試,還能確保代碼是正確的並且可以通過定義的測試嗎?