我想用RSpec测试下面的控制器
coupons_controller.rb:
class Api::V1::CouponsController < ApiController
def index
if params[:profile_id]
@coupons = Profile.find(params[:profile_id]).coupons
end
end
end
字符串
我想知道
1)如何使用FactoryBot
(spec/factories/profiles.rb
,coupons.rb
,coupon_profiles.rb
)创建工厂
2)如何写spec/controllers/coupons_controllers.rb
:
关联
profile.rb
class Profile < ApplicationRecord
accepts_nested_attributes_for :coupon_profiles
end
型
coupon.rb
class Coupon < ApplicationRecord
has_many :coupon_profiles
end
型
coupon_profile.rb
class CouponProfile < ApplicationRecord
belongs_to :coupon
belongs_to :profile
end
型
1条答案
按热度按时间k75qkfdt1#
类似于:
字符串
老实说,最好的办法是查看FactoryBot的GETTING_STARTED README--你想知道的一切都在里面,还有例子。它是README的一个闪亮的例子。(注意在我上面的例子中使用
class
,使用字符串化的类名而不是类常量有特定的性能原因)对于您的控制器规格,您是否查看了RSpec Documentation?尽管建议您使用更多的功能测试,如请求规格而不是控制器规格。您应该能够执行以下操作:
型