蒼時弦也
優雅的 RSpec 測試 - Spy 的應用
在撰寫 RSpec 的過程中,我們大多會使用 expect
(預期)搭配 receive
(接收)來驗證某個方法有被呼叫,然而這會讓我們需要將「預期」寫在實際的行為之前,在驗證的邏輯上似乎有點奇怪,因此我們可以用 Spy 功能替代,在呼叫實際的方法後再去驗證行為。
在撰寫 RSpec 的過程中,我們大多會使用 expect
(預期)搭配 receive
(接收)來驗證某個方法有被呼叫,然而這會讓我們需要將「預期」寫在實際的行為之前,在驗證的邏輯上似乎有點奇怪,因此我們可以用 Spy 功能替代,在呼叫實際的方法後再去驗證行為。
在測試中,我們經常會看到 Mock 和 Stub 這兩個詞,很多時候也不容易區分清楚。在 RSpec 中我們基本上不會看到 Mock 或者 Stub 這兩個詞,取而代之的是 Double 和 Allow。