unit test
poltergeistはここにいろんな設定内容の説明が書いてある。 https://github.com/jonleighton/poltergeist#customizationで、今回js_errorsを一部のテストだけfalseにしたかったので、その方法を調べた。何かそれようのメソッドがある感じじゃなかったので、…
テストが多くなってくると必然的に実行時間が長くなってしまう。 テストの書き方を工夫する余地があるうちはいいけど、それもきつくなってきたらもう後はマシンパワーに頼るしかない。そこでこちらのparallel_testsです。 https://github.com/grosser/parall…
前回で、サーバサイドとクライアントサイドの分業がしやすくなった!とおもったけど、あれだと1種類のmodelにしか対応できていない。articleの開発は問題なく進められても、author絡みの開発をするには、また別のアダプターをつくらないといけなくなっちゃ…
何かの拍子にテストの一部が通らなくなった。コードを追ってみても原因がわからず、そこそこハマった結果、DBにゴミデータが残っていることが原因だとわかった。きっと実行の途中で止めちゃったりしたんだろう。 また同じようなことが起きたら、きっとこれを…
FactoryGirlに限った話じゃないけど。で、どうするかというとskip_callbackを事前に呼ぶ。 Model.skip_callback(:create, :before, :set_default_status) :set_default_statusは任意のフィルター。 いろいろやってみたけど before_create { self.status = "a…
こんなコードがあったんです。 メールアドレス変更をするときに、ユーザーIDと新メールアドレスとトークンを持つモデルのテストで、トークンがかぶったらマズイからbefore_saveでunique_tokenという、渡されたトークンが既に存在しないか確認するメソッドを…
rspecで書いているテストが遅い。CPUもめちゃ回る。めちゃ回ってあのスピードか。rspec + guard + spork(spring試したい)で自動テストを回しているので、あまりテストのパフォーマンスが開発に影響することはなかったんだけど、けっこう大きいmodelの修正…
会員登録時やパスワードリマインダーなどで発生するメール送信のテストはどうやってするのか調べたところ、email-specというgemが目的にぴったりっぽかった。 その名の通りRSpecとあとはMiniTestとCucumberに対応している。email-specをRSpecに導入するメモ…
RailsでJavascript/CoffeeScriptをテストするときの決定版(にしたい)!Konachaの続き。最初はブラウザリロードすればいいんだから、わざわざやらなくていいか、と思ったけど、当該環境がファントムとかポルターガイストとか中二病の諸症状を悪化させる瘴気…
追記系。 デフォのテストは重くてきつすぎるっす Androidのテストツールならこれ!Robolectric導入の儀。 これ以降、ほとんどRobolectricを使う前提の話 画面の遷移 RobolectricでActivityの遷移を確認する方法 フラグなんかも以下のような感じでテストでき…
本当のリア充はクリスマスだからといってむやみにツイートを抑えたり偽装したりしない。通常運転。Rails3+rspec2でWeb APIサーバのpostをテストする方法がよくわからなかった件の続編。今度はAPIサーバ、つまりサブドメイン縛りのリソースに対してroutingの…
どういうわけかRobolectricにないっぽい。Android実装があるだけで中身はピュアJavaのはずなので、手作りShadowでもいいと思うんだけど、めんどくさいのでポムった。 <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20090211</version> <scope>test</scope> </dependency> <dependency> <groupId>com.pivotallabs</groupId> <artifactId>robolectric</artifactid></dependency>
追記)なんかいろいろわかってないところがあるので、このエントリの内容はペンディング。 powermockなんていらないやい!と思ってたけど、finalなGoogleMapクラスをモックにしないとどうにもテストがままならない事案が発生しまして。で、powermockを以下の…
Rails3+paperclipでファイルアップロードの最後で気づいたテストごとにファイルを消す方法。基本的なコンセプトとしては、テスト時だけ保存場所を変えて、テストごとにそのディレクトリ配下をごそっと消す、という流れ。config/environments/test.rb config.…
bcryptを使ってパスワードをハッシュしたUserなんかをFactoryしてるときのケース。production環境と違ってtest環境はハッシュの強度なんてどうでもいいから以下のようにする。config/environments/test.rb require 'bcrypt' silence_warnings do BCrypt::Eng…
こちらを参考。 http://ruby.railstutorial.org/chapters/static-pages#fnref-3_2このサイトは「これからRailsやります(たいです)!」っていうタイミングだったら全部読んだほうがいいと思うよ。チュートリアルだから読みながら実践力が身につくし英語の勉…
ActivityAからActivityBに遷移(?)できていることを確認するテストを書きたかったのでやり方を調べてみるとStartedMatcherってのを使うっぽかった。 http://pivotal.github.com/robolectric/javadoc/com/xtremelabs/robolectric/matchers/StartedMatcher.htm…
や。何もしなくてもよかった。。どうやってやるのが常道なのかなぁ、とか2時間近く調べて、ShadowSQLiteOpenHelperが絡んでくるんだろうな、というところあたりまではわかったけど、具体的にどうするのかわからなかった。が、前述のとおり、結局何もしなくて…
AndroidではAPI Level8(Android2.2)からBase64が組み込まれているんだけど、RobolectricにはまだShadowがないっぽい。・・・と思ったらgithubのmasterには1ヶ月ほど前に取り込まれてたよう。 https://github.com/pivotal/robolectric/pull/326だけどMavenで…
Theory&DataPoint使ってるよね! なにそれ!?って人はググるかタウンページめくったほうがいいよ!で、こんな感じでnew ObjectThrowsExceptionがthrows exceptionなとき、どうすればいいか迷っちゃう! @DataPoints public static ObjectsThrowsException[…
java.lang.IllegalStateException: No implementations match configuration.もうそろそろ普通に開発させてくれんかね。。で、タウンページをめくってみるとABS本家のgithubが筆頭に。 https://github.com/JakeWharton/ActionBarSherlock/issues/377 When Ac…
依存関係の設定のところで、JUnitよりhamcrestを上にしよう。そんじゃーね。
Webサーバとつながないとテストできない。そういうテストしたいときってあるじゃない。いや、そういうときは設計を見直すべきときも大いにあると思うけど、いやこれ絶対つながないと無理だって!という時にはこれ。 http://code.google.com/p/mockwebserver/…