動作試験するのは良いのですが
UT 入れたいよな、と。
Vows ってモジュールがあるのは知ってたのですが、http なソレのスタブ (node-fakeweb) があるのを発見したので盛り込んでみることにします。
というか
元の手続きの記述の方法として、他所から呼び出される、を前提にしてないのでそちらから改修しないとマズいですね。
こうしとけば良いのかな。
module.exports = myFeed; var myFeed = function() {
あ、こうでも良いのか。
module.exports = function() {
中で定義されてる手続き全部 export したい場合どうすりゃ良いのやら。ってちょろっと確認したところではいちいち export しないと駄目みたい。
ちょっと以下なナニをでっち上げたので
var vows = require('vows'), assert = require('assert'); var fakeweb = require('fakeweb'), http = require('http'); var myFeed = require('../web'); vows.describe('isExist').addBatch({ 'A strawberry': { topic: '1', 'undefined': function () { assert.isFalse (myFeed.isExist(undefined)); }, 'not undefined': function (topic) { assert.isTrue (myFeed.isExist(topic)); } }, }).export(module); // Export the Suite
package.json を以下にして
{ "name": "fb_myfeed", "version": "0.0.1", "description": "Issue _Likes_ to my/feed", "dependencies": { "nodemailer": "0.1.18", "facebook-client": "1.3.0", "facebook": "0.0.3", "vows": ">=0.5.x", "fakeweb": ">=0.0.1" } }
npm install しました。
vows@0.6.0 ./node_modules/vows └── eyes@0.1.6 fakeweb@v0.0.1 ./node_modules/fakeweb └── nodeunit@0.6.4 $
vows は -g 付けて導入しといた方が良さげ。導入したので実行してみます。
$ vows test/test_myFeed.js ·· ✓ OK » 2 honored (0.002s) $
ヨシ。
とりあえず手続き化してるソレから試験を書く。そろそろ UT 無いと微妙、って思っていたのでこれは嬉しい。
余談
なんか字下げが微妙なので js2-mode 入れてみました。
$ sudo apt-get install js2-mode
閑話休題
とりあえずサブな手続きまでの試験を書いたんですが、ちょっと微妙。書きかたが悪いのかなぁ。でも二つ三つバグが取れたので書いて良かった (書けてよかった)。
とりあえず、これからひぃひぃ言いつつメインなソレの試験を書きます。というか今の時点で commit しとくか。