動作試験するのは良いのですが

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 しとくか。