タグ

モックに関するkyo_agoのブックマーク (4)

  • テストでモックできなくて困るNode.jsのモジュールの書き方 - console.lealog();

    こういう書き方にしてしまったせいで、テストの時にうまくモックできず困ったよというメモ。 問題のコード こういうやつ。 function foo(id) { bar(id); // ... } function bar(id) { // some heavy logics... } module.exports = { foo, bar, }; モジュール内が関数だけで構成されてるのは○。 ただし、テスト的には都合が悪い。 何に困るか テストでこの関数をモックしたい・・って時に困る。 さっきのコード例で、`foo()`をテストするときに、`bar()`をモックしたいとする。 jestだとこんな風にするはず。 const mod = require('../mod'); describe('foo test', () => { let barSpy; beforeEach(() => { ba

    テストでモックできなくて困るNode.jsのモジュールの書き方 - console.lealog();
  • Jestを使ってみてのハマりどころメモ - console.lealog();

    JestいいですよねJest。 あれこれプラグインとかライブラリとか入れなくてもだいたいのことができて。 さて、この1ヶ月くらいひたすらJestでテストを書き続けて、ハマったとこをメモ。 逆に言えば、ここに書いてないことでは一切困ってなくて、Jest最高って感じ。 Karmaみたいなブラウザでテストする機能さえつけばもう一生ついていきます感すらある。 before / afterでもasync Docsにそれらしいコードはないけどできる。 beforeAll(done => { // some async tasks done(); }); beforeEach(async () => { await asyncTask(); }); afterEach(async done => { await asyncTask(); asyncTask2(done); }); afterAll(()

    Jestを使ってみてのハマりどころメモ - console.lealog();
  • 新しいモックライブラリ testdouble.js を使って js のモックテストを書く - Qiita

    この記事は CureApp Advent Calendar 2016 2日目の記事です。 今日は新しいモックライブラリの testdouble.js の話です。 モックとは ソフトウェア開発におけるモックとは、テスト環境において物を使ってしまうと何らかの理由で都合が悪いものを、テスト環境で物とすり替えて使う何らかの 偽物 のことです。 「テスト環境において物を使ってしまうと都合が悪いもの」の例としては、例えば、データベース接続、外部API接続など、環境を準備することができない/面倒/コストが高いものなどがあります。モックを使うことで、そのような構築コストの高い環境設定をスキップして、効率よくテストを実行することができます。 また、モックを使う別な理由として、テストの実行速度の高速化があります。ファイルアクセスやデータベースアクセスは一般的に遅いため、そこをモック処理に置き換えることで

    新しいモックライブラリ testdouble.js を使って js のモックテストを書く - Qiita
  • 「スタブ」と「モック」は全然違うものなんですよ - uehaj's blog

    「スタブ」と「モック」は全然違うものなんですよう、という話は前からされてますが、世の中にたくさんの誤解があふれている。ファウラー氏の記事もわかりにくいわい!!!頭のいい人に解説させてはダメだ!(暴論)。 つーことで上の考え方を私の言葉で述べます。 「スタブ」と「モック」は違います。何が違うかといいますと、目的が違います。何の目的かというと、試験の目的です。 んでね、混乱の原因の一つは「スタブオブジェクト」「モックオブジェクト」という使うモノを見てては、この目的の違いが分からないということです。日刀とマグロ切り包丁を見ていても、両者が違うことがわからない。目的と照らし合わせてみて始めて違いがわかるんです。 モックについて言うと「オブジェクト間の相互作用を見るためのテスト」をするときに用いるのがモック。以上。それ以上でもそれ以下でもない。便利さの度合いも試験の手軽さもスピードも関係ない(直交

    「スタブ」と「モック」は全然違うものなんですよ - uehaj's blog
  • 1