stub_constで定数をスタブ化する
RSpecのテストフレームワークを使用しているRubyやRuby on Railsのプロジェクトで見られるメソッドの一つ。一時的に定数の値をスタブ(つまり、偽の値に置き換える)するのに役立つ。
使用例
特定の定数の値に依存するコードをテストしている場合、その定数の値を一時的に変更してテストシナリオを検証することができる。
it "does something based on MY_CONSTANT" do
stub_const("MyClass::MY_CONSTANT", "fake_value")
# このブロック内では、MyClass::MY_CONSTANTは"fake_value"として扱われる
expect(MyClass.some_method).to eq(expected_result_based_on_fake_value)
end
この例では、MyClass::MY_CONSTANT
をfake_value
に一時的に置き換え、その新しい値に基づいて動作するかどうかをテストする。
stub_constはテストの実行中だけ定数の値を変更し。テストが完了すると、定数の元の値が復元される。
create_listを使用して、複数のインスタンスをまとめて作成する
FactoryBotのメソッドの一つで、指定されたファクトリ名を使って複数のレコードを一度に作成するために使用される。
使用例
以下のようなFactoryBotの定義あるときに、
FactoryBot.define do
factory :user do
name { "John Doe" }
age { 30 }
end
end
5人のユーザーを一度に作成する場合は以下のようになる。
users = create_list(:user, 5)
べてのユーザーに共通の属性をオーバーライドしたい場合は、以下のようになる。
users = create_list(:user, 5, age: 25)