class User < ActiveRecord::Base mount_uploader :avatar, AvatarUploader validates :avatar, presence: true # ファイルがちゃんと設定されていることを確認 end
![CarrierWaveを使いつつfixtures + minitestでtestを書く - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/3910ad7c2be19d73852205d5a4827aa4c4f23377/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9Q2FycmllcldhdmUlRTMlODIlOTIlRTQlQkQlQkYlRTMlODElODQlRTMlODElQTQlRTMlODElQTRmaXh0dXJlcyUyMCUyQiUyMG1pbml0ZXN0JUUzJTgxJUE3dGVzdCVFMyU4MiU5MiVFNiU5QiVCOCVFMyU4MSU4RiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9MjlhNDYyOTYzZDg5NWRhZDMxMmZlZTdkZTY3ZDZkYjQ%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrYXphc2lraSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZjY5N2IwMDBkZTZiNDgzY2YxMmI2Nzg0NGE3MjUwYTQ%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Da0a6e7d4552edf9303c6e2c4ac3c7d2e)
Minitestの勉強も兼ねてRubotyの自動テストを作ってみました。 MinitestもRubotyの自動テストについても情報が少なく四苦八苦しましたが、 モックライブラリMochaを使ってやりたいことが実現できたので、やったことを記録します。 Rubotyをどうテストするのか、Mochaの使い方がメインの話です。 Ruboty自体やその構成要素のHandler、Actionについての説明は以下が詳しいです。 Ruboty って何?どうやって動かすの? Hubot と何が違うの?どっちを使えばいいの? #ruboty #chatops - Qiita Ruboty | 基本構成図解 #ruboty #chatops - Qiita なおテストコードは個人的な好みでMinitestのSpecスタイルで書いていますが、基本的にはUnitTestスタイルでも同じことができるはずです。 ゴール
$ ruby sample_test.rb Run options: --seed 42317 # Running: S Finished in 0.000945s, 1058.4788 runs/s, 0.0000 assertions/s. 1 runs, 0 assertions, 0 failures, 0 errors, 1 skips You have skipped tests. Run with --verbose for details. テストの進捗状況はスキップ(Skip)を表すSが表示されます。実行結果のまとめでも1 skipsのようにスキップされたテストの件数が表示されています。 最後の1行には英語で「スキップされたテストがあります。--verboseオプションを付けて実行すると詳細が表示されます」という文言が書いてあります。このメッセージに従って、--verbo
前回minitestのオススメ設定を紹介させていただきましたが アサーションをどう記述するかに関しては、関連するgemが多すぎて記事としてまとめられませんでしたので 別記事として紹介させていただきます どの様にテストを記述したいのか、という用途別で敢えて分類を行うならば 下の4択のいずれかなのではないかな、と思います assert_equalを拡張していく、power assertを取り込んでいく rspecに近づける must_equalに寄せていく shouldaに近づける 以前からshouldaを使ってテストを記述してきた人じゃないなら、shouldaの書式に近づける意味は無いので、実質三択ですがそれぞれの用途別にインストールするgemを紹介させていただきましょう 今回は、動作確認は、以下の環境でチェックしています rails 4.1.8 minitest 5.4.0 assert_
だいたいぼくは Rails のプロジェクトではテストフレームワークとして Minitest を使っているのですが、だいたい「RSpec しか書いたことなくて Minitest わかんねー」という苦情をいただくので、なんとなく Minitest について、なんか使い方だとか、書き方のコツだとか、なんかそんなようなやつをまとめていこうと思います。 内容は「Minitest Cookbook」の「Rails Recipes」の章を思いっきり参考にさせてもらっています。なので Minitest 自体の説明は少なくて Rails のテストに特化した内容となっています。この本はほとんど唯一の Minitest 本だと思うし、ここで紹介する Rails 絡み以外の部分も良い内容なので読んでおくといいでしょう (そこそこ高いけど) 。 ちなみにこれは「その1」で、まだまだ続く予定ですがいつ書くかは未定です
はじめに さて、みなさん、railsでテスト書いていらっしゃるでしょうか? 私は、普段、rspecでshouldを書いて地味なイライラが溜まっています。 rspec3の新文法expectも括弧地獄の辛みが凄くて、Kernel#shouldとかいう劇薬なモンキーパッチングでもこの方がマシと感じて移行しませんでした。 さて、そういう人間なものでテストのためのシステムにメタプログラミングをするのはあまり好きではないという理由でminitestを調べてみたのですが、正直関連するgemが本当にたくさんある割に情報が整理されていない感じがしたので、ちょっと全てのgemを調べてその「まとめ」を公開させて頂きます。 標準構成 結論から言うと、minitest自体は結構良く出来ているので、多くを求めないならminitest本体とminitest-railsだけでもそれなりに使えます。 ですが、やっぱり色分け
はじめに Minitestのアサーションを調べていたところ、以下の二つのメソッドを見つけました。 assert_in_delta(exp, act, delta = 0.001, msg = nil) assert_in_epsilon(a, b, epsilon = 0.001, msg = nil) MinitestのAPIドキュメント この記事ではこの二つのメソッドの違いについて説明していきます。 絶対誤差で比較する assert_in_delta わかりやすいのは絶対誤差で比較する assert_in_delta だと思います。 たとえばRubyで 0.1 + 0.2 を計算すると 0.3 ピッタリにはなりません。
Ruby on Railsにおいて特に指定しないとテストにはminitestが採用されるようになっている。 私は普段の開発においてテストにはrspecを採用し、Emacsのrspec-modeを経由して使っていたのだが、さすがに標準のほうを使ったことがないってのはよくないなと考えてminitest + minitest-modeを使ってみることにした。 -*- mode: minitest-compilation; default-directory: "~/gitwork/minitest-project/" -*- started at Mon Mar 27 10:10:21 bundle exec ruby -Ilib\:test\:spec test/controllers/minitest_controller_test.rb Run options: --seed 33436
minitestとは minitestはruby標準のテスティングフレームワーク。 標準だけど、いろいろ経緯があって、バージョンや対応状況がコロコロ変わっていまいち広まってないみたい。 RSpecを使う人が多い中、minitestに関する情報はぐぐってもあんまりない状態(;´Д`) モジュールメソッドにstubを使う方法 minitestでmockやstubを使う方法はこちら。 http://blog.willnet.in/entry/2012/12/05/004010 ただモジュールメソッドに対して適用する方法はなかなか見つからなかった。 いろいろ試してやっとできたので、紹介します。 以下は指定桁のランダムなhexを生成するという、stub置き換え対象のモジュールメソッド。 require 'securerandom' module TestModule module_function
経緯 minitest で標準出力の結果をテストしたい時に、どうすればいいのか調べたので記載 結論 assert_output を使えばいけるみたい。 標準出力の期待値があれば、stdout に引数を渡す。 引数に nil を渡すとテストされない 標準エラー出力の期待値があれば、stderr に引数を渡す。 引数に nil を渡すとテストされない 標準出力とエラー出力がどちらも期待値が nil のテストをしたい場合には assert_silent を使う テストしたい処理をブロックで渡す 簡単な使用例 標準出力だけテストする。 require 'minitest/autorun' class StdoutTest < MiniTest::Test def test_puts assert_output("std capture\n") { puts "std capture" } end
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く