目前,我正在深入探索測試技術,儘管我不確定我是否仍住在unittest-land中,或者已將它留在集成測試的土地上。給我兩個組件A和B,A使用B,那麼我們對B有一個「向上契約」,對於A我們有一個「向下契約」。基本上這意味着:如果A正確使用B並且B行爲正確,那麼兩個合同都將得到滿足,並且事情將正常工作。嘲笑...和驗證者?
我認爲mock是一種保證給定測試用例所需的向上契約的子集的方法。例如,數據庫連接可能具有向上協定來檢索數據記錄,前提是它們已被插入。數據庫連接模擬保證返回某些記錄,而不需要將它們插入到數據庫中。
但是,我目前想知道是否有辦法驗證向下契約。以數據庫連接爲例,向下契約可能是:您必須連接到數據庫並確保連接存在並運行,並輸入正確的SQL查詢。
有沒有人做過這樣的事情?這是否值得爲更復雜的合同工作? (例如,數據庫連接可能需要一個SQL解析器爲了徹底驗證調用數據庫層)
問候,tetha