Rspec для следующего метода - PullRequest
0 голосов
/ 13 января 2012

Может ли кто-нибудь помочь мне в написании rspec для следующего метода Метод write_entry_to_xml записывает узлы xml.Запись представляет собой объект, который выглядит как

entry = Sitemap::Entry.new("http://www.example.com", 'monthly', 0.8, "2011-11-23 13:56:42 UTC")

def write_entry_to_xml(entry)
  node = Nokogiri::XML::Node.new("url", @xml_document)
  node["loc"] = entry.loc
  node["lastmod"] = entry.lastmod.to_s
  node["changefreq"] =  entry.changefreq.to_s
  node["priority"] = entry.priority.to_s
  node.to_xml
end

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Прежде всего вы должны знать ожидаемый результат вашего метода.Мы не можем сказать вам, что должен делать ваш код.Если у вас есть это, ваша спецификация не должна быть чем-то большим, чем

describe SomeClass do

  describe('write_entry_to_xml') do
    let(:entry) { Sitemap::Entry.new("http://www.example.com", 'monthly', 0.8, "2011-11-23 13:56:42 UTC")}

    it 'should return a properly formatted xml fragment' do
      SomeClass.write_entry_to_xml(entry).should == "<url>...</url>"
    end
  end
end

Здесь я предположил, что этот метод является методом класса в SomeClass - измените, чтобы соответствовать тому, что вы сделалиВы также должны явно заменить «...» на желаемый результат

0 голосов
/ 13 января 2012

Существуют различные способы получить некоторые заранее определенные данные, которые вы будете использовать в качестве входных данных в своей спецификации.1.

before :each do
    @input = input
   end

Теперь @input будет доступен для спецификаций, так как этот блок будет запускаться перед каждой спецификацией.2. Вы можете определить входные данные внутри спецификации как локальную переменную и затем получить к ней доступ.Если вам требуется доступ к одной и той же переменной во многих местах, вы можете использовать описанный выше метод.

Вы можете получить XML с помощью библиотеки, например Builder .

 builder = Builder::XmlMarkup.new

  xml = builder.url do | b|
    b.loc = "http://www.experteer.de/jobboerse/deutschland/jobs/mannheim"
    b.changefreq =0.8 
    b.priority = "monthly"
    b.lastmod = "2011-11-23 13:56:42 UTC"
  end

этот код должен дать вам объект XML.Дайте мне знать, если вам нужна дополнительная помощь.

...