こんにちは!SmartHRで基本機能の開発を担当している、エンジニアのwakasaです。2023年の1月から半年かけて、自チームのテストフロー見直しを行い、実装時間を大幅に増やすことができました。今回はその取り組みをご紹介します。 見直し前のチームの状態 私の所属するEチームは、SmartHRの基本機能の中でも、従業員情報やマスターデータの履歴データ管理周りの機能開発を主に担当しています。2023年8月現在、エンジニアが6名、プロダクトマネージャーが1名、プロダクトデザイナーが1名所属しており、QAエンジニアは所属していません。以前はQAエンジニアがチームに所属していましたが、2022年10月にチームを離れました。QAエンジニアがチームを離れたあとはエンジニアがテスト業務を兼務しています。 今回の取り組みを始めるきっかけとなったのは、2022年の年末に実装にどのくらい時間を使えているのか計

会社のRailsプロジェクトで初見のgemに出くわし、便利だったので書きます。 基本的には公式ドキュメントを参考に書いています。 概要 概要を先にまとめると、Committee で、Specを書く際、API設計をしているopenapiドキュメントの内容に沿った、出力がされているかテストすることができる。 Committee::Rails でrails内でCommitteeの利用を可能にする。 実際にはこの二つの組み合わせによって、assert_schema_conformというメソッドが使用可能になり、それをテスト内で使用できるというもの。 テストで期待するいちいち出力の形を定義しなくていいので便利。 それぞれcommittee、committee-railsというGemで利用する。 Committeeとは JSON Schema,OpenAPI 2,OpenAPI 3.を使って、サー

Rspec 3.5についての記載となります。 documentにallow-any-instance-of/expect-any-instance-ofは使わない方がよいと書かれています。 This feature is sometimes useful when working with legacy code, though in general we discourageits use for a number of reasons: The rspec-mocksAPI is designed for individual object instances, but this feature operates on entire classes of objects. As a result there are some semantically confusing edge
はじめに やりたいこと:カッコよくグリーンを出したい! 「テストは大事!」とは言うものの、どんなRSpecを書いたらいいのかわからない...。 そんな状況が、Railsのお仕事に本格的に関わるようになってから、続いておりました。 そもそも自動テストには憧れがありますし、specを実行して、ターミナルに緑の文字を出したいのはやまやまです。でも、何を書けばいいのかわからない。 そんな時の、とりあえずの取りかかりの例を載せてみます。 ※ この記事の例について: 下記の例は、実際はテストとして無理に書く必要はないものだったりします。 自明なものを書きすぎると、たとえば全てのテストを通すのにも非常に時間がかかってしまいますので、このあたりは、rspecを動かす場合の確認用、1例として見ていただけると幸いです。 ※ これからRspecを始めたい方 / 初心者の方へ (20180523 追記) @jnc

rspec2.99でinclude_examplesを使用しています。 spechoge.rb describe 'hoge_type' do before do end include_examples 'toarutesuto' end spec/support/lib/kyouyuu.rb require 'spec_helper' describe "テストを共有" do before do end shared_examples 'toarutesuto' do before do endit'' do end テストを実行すると、以下ワーニングが出ます。 Deprecation Warnings: -------------------------------------------------------------------------------- Accessing
概要 原著者の許諾を得て翻訳・公開いたします。英語記事:Ruby onRails / RSpec - test execution count to make your code better 原文公開日: 2018/02/24 著者: Paweł Dąbrowsk 参考: RSpec 3.12ドキュメント Class: RSpec::Mocks::MessageExpectation 2018/04/02: 初版公開2023/09/21: 更新 RSpecでは、指定のメソッドが呼び出される回数をexpectで指定できます。その方法を説明する前に、呼び出し回数を知ることの重要性についてお話します。これはコードの振る舞いを制御するためのものです。説明のため、わざと誤ったコードを書いてみます。 class SomeClass def something @something = ser

RSpec のテストダブルで呼び出しているクラスやメソッドの変更を検出する方法についてまとめます。 スライド まずは Sandi Metz 氏の自動テストに関するスライドをご覧ください。 Verifying doubles スライドではテストダブルが実際にAPIと同期しているかチェックするためのライブラリ群が紹介されています。 RSpec3 からは該当機能が標準で取り込まれています。 relishapp.com 例えば、 RSpec 2 で double を利用していた箇所を RSpec 3 で instance_double, class_double 等を利用するように変更すると、 テストダブルの変更を検出してくれるようになります。 これにより該当クラスやメソッドの名前が変更された場合に変更を検出できるようになります。 さらに RSpec の設定値を変えることで検証範囲を変更することが

前回はRSpecの基本メソッドについてまとめました。今回はMockについてまとめます。 テストダブルとは テスト対象が依存しているモジュールやリソースの代役のこと。結合テストのような複雑な環境を事前に用意せずとも目的の機能をテスト可能となるように振る舞いをシミュレートする。 irb,pry等でMockを試したい時、
エムスリーではTech Talk という技術勉強会をほぼ隔週で行っているのですが、今日は記念すべき 50 回目ということで飲み会がありました。少しだけ飲み過ぎて遅くなってしまったのですが、エムスリーアドベントカレンダー 12/21(月)の記事がこちらになります。 私は日頃趣味ではJavaScript 関連を触っていることが多いのですが、業務ではフロントエンドに加えて、Rails を使ってデータの整合性が何よりも大事な業務系のシステムを書いています。このようなシステムを開発する中で、Rails の Migration、特にスキーマ変更に付随するデータ変更について学んだことをいくつか書いてみようと思います。 バックアップ 何はなくとも、本番環境で Migration を実行する前にバックアップを取りましょう。当たり前のことですが、大事なことなので二度言います。バックアップを取りましょう。

There are times in your tests when you need tocreate multiple instances of the same type of object. FactoryBot1 providescreate_list forjust these sorts of scenarios.It’s typically sufficient tocreate two records in these cases, butcreate_list leaves open the possibility that you could unintentionallycreate many more records. Consider, for example, testing a feature that pages in additional

Cucumber 利用していますか? 基本的な使い方はわかるんだけど、なんだかもっと上手く使えるんじゃないだろうか?と、もやもやしながら使っています。 少くとも私の周りには Cucumber について情報交換できる人がいないです。 それでも、SlideShare や Speaker Deck なんかに公開されたスライドでよくみかけるので、使い込んでるところでは使い込まれているのだと思います。 Cucumber はRailsプロジェクト以外でも利用されているようで、範囲が広いです。もうちょっといろんな情報がWeb上に流れていても良い気がします。 私が知る限りでは Cucumber についてもっと詳しく書かれているのは The Rspec Book です。 前置きはさておき、 Cucumber の *.feature は Gherkin という 言語で書きます。 その文法について調べたので
2017.12.01 週刊Railsウォッチ(20171201)JSON PatchでRails高速化、Knapsack Proでテスト高速化、Decorator/Presenter gem比較ほか こんにちは、hachi8833です。マカーな皆さまはHighSierraアップデートお済みでしょうか。macOS HighSierra なかたは,昨日ネットを騒がせた対策法についての議論はすべて忘れて,すぐに App Store からセキュリティアップデートを行ってください。再起動不要 — Haruhiko Okumura (@h_okumura) November 30, 2017 続報:macOS HighSierra脆弱性パッチに別の不具合、ファイル共有できなくなる恐れ。ただし修正は簡単 12月最初のウォッチ、いってみましょう。Rails: 今週の改修 MemCacheSto

Yes, I know, that testing private methodsit's not agood idea (and I read this thread - http://www.ruby-forum.com/topic/197346 - and some others) But how can I test the following code? I use xmpp4r. In my public method #listen I start receive jabber messages like so: def listen @client.add_message_callback do |m| do_things_with_message(m) end end private def do_things_with_message(m) # end #add_m
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く