ここからテストする!!熟成コード

オフィスが綺麗だからやってきたエンジニアの山本です。

ラクスルのコードは熟成が進んでいるので、簡単にデグレします。
ユニットテストを書いていますが、如何せんカバレッジが・・・。

そんな熟成コード、どこから手を付けたら良いのものかと考慮した末、
「WEBページがまともに表示される(200返ってくる)」というところを
保証出来るところから始めていけたらと思い実施したメモを記します。

このような熟成コードと戦うエンジニアの皆様の参考になればと思います。
もっと良い方法あるよ!などありましたら、ぜひご教授ください。

ソースコードはこちらで公開しております。

Response 200 が返ってくることを確認する

ブラウザでページが正しく表示された場合は、http response 200 を返すことを利用します。
https://ja.wikipedia.org/wiki/HTTP%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89200

0. 前提

  • 既存のフレームワークの xxxxunit など利用して レスポンス200 を確認できない or 難しい現実がある
  • ブラウザでページをクリックしたくない
  • とりあえずシンプル

1. テスト環境

以下を利用します。

  • 環境:node >= 5.0
  • テストフレームワーク: mocha + chai + chai-http

2. 書いてみる

//test.js

var chai = require('chai');
var chaiHttp = require('chai-http');
var should = chai.should();

chai.use(chaiHttp);

describe("Response 200", () => {
  it(`Get /`, (done) => {
    chai.request('https://raksul.com')
      .get('/')
      .end((err, res)=>{
        res.should.have.status(200);
        done();
      });
   });
});

3. 実行

mocha test.js

mocha_test

簡単に レスポンス200 を確認することができました。あとは対象ページを増やすだけです。

4. 発展

上記の 3. から、いざ実プロジェクトに適用しようとすると、次にしたくなるのが以下のようなこと。

  1. 開発者毎に環境を変えたい
  2. 環境ごとにURLを変えたい
  3. ログイン後のページも確認したい

ということで、上記を満たしたソースコードをこちらで公開しております。

5. 発展実行

readme を参考にして、設定、実行すると以下のように(当社にページに対して実行したレスポンスの結果)手軽に多くのページのレスポンスを確認できます。

test_response_sample

 

以上、このような熟成コードと戦うエンジニアの皆様の参考になればと思います。もっと良い方法あるよ!などありましたら、ぜひご教授ください。