다음 배열을 Rspec과 어떻게 일치시킬 수 있습니까?Rspec을 사용하여 복잡한 데이터 구조 (구조체 배열) 일치
[#<struct Competitor html_url="https://github.com/assaf/vanity", description="Experiment Driven Development for Ruby", watchers=845, forks=146>,
#<struct Competitor html_url="https://github.com/andrew/split", description="Rack Based AB testing framework", watchers=359, forks=43>]
는 클래스 I 방식은 이전 또는 이전 포함되는 다양한처럼 구조체의 배열을 반환 여부를 확인해야한다.
UPDATE :
나는 현재 내가 당신이 그것을 생각하거나 다음 방법을 테스트하는 올바른 방법 있는지 알고 싶습니다
require 'spec_helper'
describe "Category" do
before :each do
@category = Category.find_by(name: "A/B Testing")
end
describe ".find_competitors_by_tags" do
it "returns a list of competitors for category" do
competitors = Category.find_competitors_by_tags(@category.tags_array).to_s
competitors.should match /"Experiment Driven Development for Ruby"/
end
end
end
end
하지만 친환경이 테스트를 가지고 더 좋을 수 :
class Category
...
Object.const_set :Competitor, Struct.new(:html_url, :description, :watchers, :forks)
def self.find_competitors_by_tags(tags_array)
competitors = []
User.all_in('watchlists.tags_array' => tags_array.map{|tag|/^#{tag}/i}).only(:watchlists).each do |u|
u.watchlists.all_in(:tags_array => tags_array.map{|tag|/^#{tag}/i}).desc(:watchers).each do |wl|
competitors << Competitor.new(wl.html_url, wl.description, wl.watchers, wl.forks)
end
end
return competitors
end
end
자세히 설명해 주시겠습니까? –
@ Jason Waldrip ... 업데이트 –