Я тестирую некоторые библиотеки javascript, которые я создал, используя ruby's harmony. Все работает отлично, за исключением вызовов AJAX - есть ли у кого-нибудь идеи, как это достичь?Асинхронные модульные тесты в Ruby
Мой код выглядит примерно так (я использую RightJS):
my.js
function makerequest(argument) {
new Xhr('http://mysite.com/some/jsonp'),{
jsonp: true,
params: {something: argument},
onSuccess: function() {
// Calls a function defined outside my library
parse_response(this.json)
}
}).send()
}
test_makerequest.rb
require 'rubygems'
require 'harmony'
require 'test/unit'
require 'shoulda'
class RequestTest < Test::Unit::TestCase
context "The requesty thing" do
setup do
@page = Harmony::Page.new
@page.load(File.expand_path('js/my.js'))
end
should "get stuff from mysite.com" do
# Here I need to define a 'parse_response' which this
# should section will wait for and then do an 'assert'
# on the results.
results = callback_to_get_results_from__make_request
@page.execute('make_request("an argument")')
assert results == {'foo' => 'bar'}
end
end
end
Так что да, мой вопрос в том, как я должен назначить results
выше, чтобы я мог получить res ell асинхронного обратного вызова?