私はまだ Cljs と Om の学習段階にあります。コンポーネントテストの作成を検討しています。一部のコンポーネントにcljs-http
は、私が作成した API への呼び出しがあります。テストするとき、これらの API 呼び出しで実際にリクエストを送信したくないので、リクエストをモックしてフィクスチャを返すことを検討しています。私が持っているコンポーネントの例を次に示します。
(defn async-component [data owner]
(reify
IWillMount
(will-mount [_]
(let [resp (go ((<! (async-call "/") :body))]
(om/update! data [:objects] resp)))
IRender
(render [_]
[:ul
(om/build-all item-component data)])))
(defn async-call [path]
(http/get path {:keywordize-keys true}))
コードが実際に構文的に正しいかどうか気にしないでください。要点を示しているだけです。
ここでやりたいことはasync-component
、これと API 呼び出しをテストして、リクエストをモックするフィクスチャがレンダリングされるかどうかを確認することです。これはどのように行われますか?非同期コードをテストするためのブロックがあることは知っcljs.test
ていますが、すべての例は、より大きなコンテキストではなく、その中にasync
のみ含まれる実際のコード ブロックをテストすることを示しています。go