我在理解如何使用Rack::Test时遇到问题,我遇到的问题是POST。这是类和错误:hellotesting.rbrequire'sinatra'post'/foo'do"Hello#{params[:name]}."end这是测试:require'hellotesting'require'test/unit'require'rack/test'set:environment,:testclassHelloWorldTest"Bryan"assertbrowser.last_response.ok?assert_equal'HelloBryan',browser.last_respo
我一直在尝试使用webmock对多部分请求进行stub,但没有找到令人满意的解决方案。理想情况下,我想将请求stub如下:stub_request(:post,'http://test.api.com').with(:body=>{:file1=>File.new('filepath1'),file2=>File.new('filepath2')})然而,这似乎不起作用,RSpec提示请求没有被stub。打印非stub请求:stub_request(:post,"http://test.api.com").with(:body=>"--785340\r\nContent-Disposi
假设在setup或teardown中有潜在的昂贵操作要执行,这些操作对于所有测试都是相同的,并且其结果在测试运行期间不会被弄乱。在我看来,让它们在每次测试之前/之后运行是不对的。那么是否有一种首选方法可以仅在第一个测试执行之前和最后一个测试运行之后运行设置/拆卸代码?编辑:我正在处理的特定案例应该测试Net::FTP的一些扩展,从而建立FTP连接并设置一些远程对象以进行测试:classTestFTPExtensions 最佳答案 感谢安德鲁,我找到了这个hereonstackoverflow的答案.然而,在寻找答案的过程中,我还注意
我想在每次运行测试时初始化数据库一次,而不是每次测试。我知道Rspec有before(:all),但我无法让它工作。我想知道Rails是否有类似的东西。 最佳答案 首先:在Test::Unit中曾经有一个before(:all)等价物,但它被删除了(不知道为什么)。其次:有很好的理由不做你想做的事——测试应该相互独立运行,而不是依赖于数据库中的状态。这样您就可以保证它完全测试您期望它测试的内容。如果您有一个更改数据库状态的测试,并且您移动它并且它在另一个期望它是另一种状态的测试之后运行-您会遇到问题。因此,所有测试必须是独立的。因此
我们正在从我们构建的名为DBQuery的gem中重构一个名为DataSourceIntegrations的Ruby应用程序。我正在将一些DBQuery代码迁移到DataSourceIntegrations中。我正在构建的部分取决于DBQuery,它将在单独的步骤中添加。与此同时,我需要编写RSpec测试来验证DBQuery代码是否被正确调用,所有这些都没有DBQuery。我有的是:代码—gem密码—moduleDBQueryclassQueryMAX=1000defretrieve_users#ReturnsanarrayofuserIDsendendend应用程序代码—moduleI
我有一个Boost单元测试用例,它会导致被测对象抛出异常(这就是测试,导致异常)。如何在测试中指定预期该特定异常。我可以通过使用BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES指定测试应该有一定数量的失败,但这似乎相当不具体。我希望能够在测试中的特定点说应该抛出异常并且不应将其视为失败。 最佳答案 这不行吗?BOOST_CHECK_THROW(expression,an_exception_type);如果表达式抛出给定的异常类型,这应该会导致测试通过,否则会失败。如果您需要与'CHECK'不同的严重性,
我有一个Boost单元测试用例,它会导致被测对象抛出异常(这就是测试,导致异常)。如何在测试中指定预期该特定异常。我可以通过使用BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES指定测试应该有一定数量的失败,但这似乎相当不具体。我希望能够在测试中的特定点说应该抛出异常并且不应将其视为失败。 最佳答案 这不行吗?BOOST_CHECK_THROW(expression,an_exception_type);如果表达式抛出给定的异常类型,这应该会导致测试通过,否则会失败。如果您需要与'CHECK'不同的严重性,
给定父类Fruit及其子类Apple和Banana,是否可以将方法foostub>在Fruit中定义,以便在Apple和Banana的任何实例上对方法foo的任何调用都被stub?classFruitdeffooputs"somemagicinFruit"endendclassBananaFruit.any_instance.stubs(:foo)没有工作,看起来它只是Fruit实例的stub。除了为每个子类调用stub之外,是否有一种简单的方法可以实现这一点?发现此链接提出了类似的问题,但看起来尚未得到解答。http://groups.google.com/group/mocha-d
在Ruby的unit::test框架中运行测试时,是否有一种非常简单的方法可以从命令行指定只运行一个测试(即指定测试类和测试成员变量)?如果没有,是否有其他框架具有此功能? 最佳答案 ruby/path/to/foo_test.rb--nametest_should_do_something_really_spiffy这将调用该文件中方法test_should_do_something_really_spiffy定义的测试。编辑:这是为大多数ruby测试编写的Test::Unit框架准备的。我假设您的意思相同。
如何stubfile.read调用以便它返回我想要的内容?以下不起作用:defwrite_somethingFile.open('file.txt')do|f|returncontents=f.readendend#rspecdescribe'stub.read'doit'shouldwork'doFile.stub(:read){'stubbedread'}write_something.should=='stubbedread'endend看起来stub正在应用于File类,而不是我的block中的文件实例。所以File.read按预期返回stubbedread。但是当我运行我的规