0
testdouble.jsでテストすると、node.jsモジュールの内部機能td.replace
は可能ですか?内部関数をtestdouble.jsに置き換えますか?
内部関数はDB呼び出しで構成されているため、テストしたくありません。しかし、私はこの関数が期待されるパラメータを受け取ったことをテストしたい。正しいのparamsを取得永続かどうかをチェック
module.exports = { record: recordEvent }
recordEvent = (event) =>
var dbModel = map(event);
persist(dbModel);
var map = (event) =>
// some code that transforms event to the db specific representation (testable)
var persist = (model) =>
// some SQL insert/update code here (not testable)
そして次の試験:Node.jsのモジュール所与例えば
、テストがエラーをスローしかし
recorder = require('event_recorder')
describe 'Event recorder module', ->
it 'converts the event to a db model', ->
var event = {...// mock event };
var model = {...// mock model of the event };
var persist = td.replace(recorder, 'persist')
td.when(persist(model)).thenReturn(true)
result = recorder.record(event)
expected = true;
result.should.be.equal(expected)
:
td.replace - No "persist" property was found
なぜこのエラーが発生するのですか?persistメソッドが公開されていないためです。 testdoubleでこれをどのように達成できますか?