はじめに
はじめまして。
mixiでは,
携帯電話向けmixiである
データベースとの依存を切り離す
mixiでは,
mixi全体に自動テストを導入する際に,
- 結果を左右する入力をどこから与えるべきかが明確である
- 結果がどこに出力されるかが明確である
- それ以外の副作用を持たない
しかし,
これらの問題を解決するべく,
- テストの実行直前に一時的なデータベースを作成し,
各種コードからの接続先をそちらに向ける - 指定されたYAMLからデータベースに値を挿入する
- テストを実行する
- テストの実行直後に,
最初に作成したデータベースを削除する
当時のmixiでは,
Mixi::Test::Fixturesは,
テストをすべて実行する
fixtureの導入によって,
コードを変更したあとには,
ブラックリストは,
始めからホワイトリストを作らなかったのには理由があります。ホワイトリストを作成する場合,
- ①誰でもいつでも実行できるテストを作成した人は,
それをリポジトリに追加すると同時に, ホワイトリストにも変更を加える - ②前準備が必要だったり,
自分以外に実行されては困るテストを書いた人は, それを単にリポジトリに追加する
という作業が個々の開発者に要求されます。しかし,
図2は,