17
A
回答
-1
应ruby your_app_name.rb
一样简单。实际上,这显示在Sinatra homepage(底部)。
+1
感谢您的回复。我想我不清楚 - 我如何运行我创建的Rack :: Test测试文件。 – 2010-01-13 18:34:24
27
应该很简单。
鉴于my_app.rb:
require 'rubygems'
require 'sinatra'
get '/hi' do
"Hello World!"
end
而且my_app_test.rb:
require 'my_app'
require 'test/unit'
require 'rack/test'
set :environment, :test
class MyAppTest < Test::Unit::TestCase
include Rack::Test::Methods
def app
Sinatra::Application
end
def test_hi_returns_hello_world
get '/hi'
assert last_response.ok?
assert_equal 'Hello World!', last_response.body
end
end
你应该确保你已经安装了正确的宝石:
gem install sinatra rake rack-test
现在可以运行你的应用程序和测试如下:
ruby my_app.rb
ruby my_app_test.rb
+0
我很喜欢这个解决方案。你能告诉我为什么我们在这里使用方法'app'? – 2017-05-28 17:21:52
0
我发布了一个small example根据psyho's answer。我还加入了ActiveRecord支持,包括测试夹具。
我配置耙运行测试:
# Rakefile
require_relative './app'
require 'rake'
require 'rake/testtask'
require 'sinatra/activerecord/rake'
Rake::TestTask.new do |t|
t.pattern = "test/**/*_test.rb"
end
task default: :test
现在我可以运行测试是这样的:
rake
的试验例看起来是这样的:
require_relative '../test_helper'
class BlogTest < ActiveSupport::TestCase
fixtures :blogs
def test_create
blog = Blog.create(:name => "Rob's Writing")
assert_equal "Rob's Writing", blog.name
end
def test_find
blog = Blog.find_by_name("Jimmy's Jottings")
assert_equal "Stuff Jimmy says", blog.tagline
end
end
我在每个测试文件中都需要这个帮助器来连接所有东西:
# test_helper.rb
require_relative '../app'
require 'minitest/autorun'
require 'active_record'
require 'rack/test'
ActiveRecord::Base.establish_connection(:test)
#Set up fixtures and such
class ActiveSupport::TestCase
include ActiveRecord::TestFixtures
include ActiveRecord::TestFixtures::ClassMethods
include Rack::Test::Methods
def app
Sinatra::Application
end
self.fixture_path = 'test/fixtures'
self.use_transactional_fixtures = true
self.use_instantiated_fixtures = false
end
相关问题
- 1. 你如何运行流星测试?
- 2. 你如何从Jenkins运行NUnit测试?
- 3. 你如何在浏览器中运行摩卡测试?
- 4. 你如何在浏览器中运行Jasmine测试?
- 5. 如何测试Sinatra方法?
- 6. 如何在Sinatra post post测试Mailer?
- 7. 你如何使用Dart的命令行测试运行器?
- 8. 如何在PHPUnit + Selenium中运行测试?
- 9. 如何在PhoneGap中运行测试
- 10. 如何在Eclipse中运行cunit测试?
- 11. 如何在Jenkins中运行Selenium测试
- 12. 如何在Action测试中运行Lucene?
- 13. 如何在TeamCity中运行Jasmine测试
- 14. 如何在Eclipse中运行Spock测试
- 15. 如何在IEx中运行ExUnit测试
- 16. 如何在visualstudio 2012中运行测试?
- 17. 如何在Play中运行concordion测试?
- 18. 如何在NUnit中运行此测试
- 19. 如何在Windows中运行PHPUnit测试?
- 20. 如何在测试中运行示例?
- 21. 如何在CircleCI中运行Nightwatch测试?
- 22. 如何在Eclipse中运行Clojure测试?
- 23. 如何在CircleCI中运行jmeter测试?
- 24. 如何在调试时运行测试
- 25. 如何运行capybara sinatra
- 26. 如何阻止sinatra运行?
- 27. 在sinatra上运行多条路由上的rspec测试
- 28. 如何在Sinatra/Ruby中调试/测试电子邮件传输
- 29. 你如何在Eclipse中测试Scala?
- 30. 你如何在Django中测试formset?
正式Sinatra文档测试:http://www.sinatrarb.com/testing.html – imwilsonxu 2012-09-15 05:52:09