mockery で充分っぽい。
やりたいのは、「GAS上で動作するコードをnode上でテストしたい」、ということがメインでもともとそんなに複雑なことをしたいわけではなかったのだけど、少しだけ色気を出してconfigファイルで構成を細かく定義できるようにしようかな、くらい思っていました。
が、まずはユニットテストできれば充分だな、と思いなおして、それなら mockery で足りるんじゃなかったっけ? と。
改めて見直してみたら、ほんとにシンプルで、充分でした。
それでもやっぱりGAS上でも動かしたい。
GAS上で動かすコードをnode上でテストしたい、と言っても、やっぱりGAS上でも動かしたい。
- node上で、jasmine使ってユニットテストを書いて、そのときmockeryを使う。
- そのあと、そのコードをそのまま Rajah で GAS上へ移動して再度同一テストする。
という使い方をしたいため。 まあ、node上で使うmockモジュールと、gas上でのそれは違うものを用意しないといけないかもしれないけど・・・。
var spreadsheetApp = require('SpreadsheetApp');
と書いておくだけで、これを自由に差し替えてテストできるのは楽しいと思うので。
コードを読んでみた。
mockery は 'module' モジュール /* = require('module'); */ の公開されていないメソッドやオブジェクトへ直接アクセスするのだけど、codegs の 'module' モジュールもオリジナルの関数階層構造や関数名をそのまま残して作っておいたので・・・。
たぶん、修正なしでそのまま動く!
助かる・・・。
テストしたい。
lodash なんかもたぶん全部そのまま動くんだけど、付属のテストコードを GAS 上で走らて安心したいのにこちらは vm などに依存していて・・・。
うー。
node の依存先が少ないモジュールをGASでも使えたらいいな、と思っていたけど、テストになるとみんな依存度が格段に上がるんだね・・・。最近になって、やっと気づきました。
最小の労力でこれらのテストを動かす方法、なにかないだろうか・・・。
最小の労力でこれらのテストを動かす方法、なにかないだろうか・・・。
Comments
Post a Comment