Node.js向けのwebmockの作成を楽にしてくれるライブラリにsepiaがあります。RubyのVCRみたく一度テストで利用する通信内容を記録してモック化され、2回目以降の通信はそのモックを介して行われる様になるというものです。
sepiaを基本的に使う様にしているのですが、一部分でNockを利用したテストを含んでいた場合に、Nockで書かれたテスト内のみsepiaの動きを止めたいと考えたときにどうすれば良いのかと調べたのでメモとして残しておきます。
得てしてこういうときは世の中に3000人くらい同じことをやろうとする人がいて、3人くらいが実際に手を動かし内1人くらいがどこかに記録を残してくれているに違いないという思想を持っているのでsepiaのリポジトリのissueを眺めているとまさにという内容があったのでそれに倣いました。
上と同内容のファイルをプロジェクトに置いて、
var foo = require('../../../lib/plugin/foo.js'), sepia = require('../../util/sepia'), path = require('path'); describe('......, function(){ it('should be ..... ', function(done){ sepia.fixtureDir(path.join(process.cwd(), 'test', 'sepia-fixtures')); sepia.enable(); var args = { token:'xxxxxx' }; foo.output(args, "123", function(err, output){ err.should.be.false; sepia.disable(); done(); }); }); });
といった具合にしてみたのだが、これがスマートなやり方なのかいささか不安な点もある。
(Visited 16 times, 1 visits today)