1

関数があるとします

(defn extenal_api_fn [stuff]
   ... do things....
)

(defn register_user [stuff]
  (external_api_fn stuff))

そして、テスト

(def stuff1
  {:user_id 123 })

(def stuff2
  {:user_id 234})

(background (external_api_fn stuff1) => true
            (with-redefs [external_api_fn (fn [data] (println "mocked function"))]
            (register_user stuff1) => true)
            (register_user stuff2) => true)

(facts "stuff goes here"
  (fact "user that registers correctly
    (= 1 1) => truthy)
  (fact "user that has a registration failure"
    (= 1 2) => falsy))

これは失敗します

"you never said #'external_api_fn" would be called with these arguments:
    contents of stuff1

内部トランザクションの失敗をシミュレートするために、この関数呼び出しを (一部のケースでのみ) スタブする良い方法は何でしょうか。

4

1 に答える 1