Ruby емес, Rack емес API-ны сынау үшін Қиярды қалай пайдалануға болады

Мен қиярды көптеген заттарға қолданамын. Мен оны BDD ортасы ретінде жақсы көремін.

Мен оны API-ды сынау үшін сыртқы құрал ретінде қолданғым келеді. Мен мына нәрселерді орындағым келеді:

  Scenario: Hit api /info path and get info back
    When I visit the API path '/info'
    Then I should see the following text "Here's info on the API"

немесе ұқсас нәрсе. Мен көбінесе API-ді қара жәшік ретінде көргім келеді және тек кіріс және шығыс материалдарын сынауды қалаймын. API ішіндегі нәрсені тексеруді жоспарламаймын.

Мен қиярдағы (мысалы, Капьябара) жұмысын қарап шыққан кітапханалардың көбі ілмекке негізделген қосымшаларда ойластырылған сияқты. Мен бұған ұқсас нәрсе алғым келеді, бірақ Ракке тәуелді емес.

Қандай асыл тастар, егер бар болса, тірек тәуелділігі жоқ. Немесе қашықтағы серверде орналасқан API-ді тексеру үшін Capybara-ды пайдаланудың тәсілі бар ма?

2

2 жауаптар

Мен Capybara-ты қашықтағы API-ды сынау үшін қолданбаймын, себебі Capibara қосымшаларды сынау үшін жасалған, HTML UI-мен қосымшаларды сынау үшін пайдаланылады (Aslak түсініктемелерде көрсетілгендей).

Оның орнына HTTP сұранымдарын жасауға және оларды талдауға арналған құралы бола алатын HTTParty сияқты қияр * функциясын қолданамын. Міне, бір идея:

When /^I visit the API path '(.*?)'/ do |path|
  @result = HTTParty.get("http://theapi.com/#{path}")
end

Then /^I should see the following result:$/ do |result|
  @result.should == result
end

Мұнда сіз келесі қадамды қолданатын соңғы қадам:

Then I should see the following result:
   """
     { success: true }
   """

* I would actually use RSpec personally, I find the syntax less clumsy.

5
қосылды
PHP қолданбасын тексеру үшін оны пайдаланып жүрмін. Бұл жақсы жұмыс істейді!
қосылды автор Rimian, көзі
@Aslak: түзетуіңізге рахмет.
қосылды автор Ryan Bigg, көзі
Спасибо Райан - ең аз -в-rspec пайдалану туралы ойларыңыз қандай?
қосылды автор Kevin Bedell, көзі
Сіз берген қадамды пайдаланып, нәрселерді қайта жаздым, сондықтан мен жұмыс істеп жатырмын. Дәл сол, мен ойлаған.
қосылды автор Kevin Bedell, көзі
Капибаа жергілікті қосымшаларын тексеру үшін жасалмаған. HTML интерфейсімен webapps тестілеу үшін жасалған. Capybara сондай-ақ қашықтағы веб-қосымшаларымен жақсы жұмыс істейді (ол қолдау көрсететін көптеген драйверлердің біреуін пайдаланып - мысалы, селен). Ол HTML емес (мысалы, RESTful JSON/XML API) үшін қолайлы емес. Мен қиярды RackTest (егер ол Rack қосымшасы болса) немесе егер ол жоқ болса HTTParty арқылы ұсынамын. Қияр кітабындағы екі тәсіл туралы да бір тарау бар.
қосылды автор Aslak Hellesøy, көзі

Мен біраз уақыт Drupal қосымшасына қарсы қияр қолданамын. Ол жақсы жұмыс істейді.

Бұл маған селениумен бірге капбара орнатуға көмектесті

https://github.com/thuss/standalone-cucumber

Егер сіз механикаландыруды қолданғыңыз келсе, бұл аздап багги. 0.3.0-rc3-ді қолдануға тура келді, себебі қайта бағыттаудан кейін кейбір мәселелер туындады және т.б. бар. «[]» Таңбаларын қамтитын өріс аттары бар пішіндерді жіберуді жалғастыруда. Менің командамның басқа адамы бұл қатені тапқанымен есіме түсіре алмаймын.

1
қосылды
Керемет - сілтеме үшін рақмет!
қосылды автор Kevin Bedell, көзі