我有一个名为“FizzBuzz”的游戏的非常简单的Ruby实现(即给定输入数字,如果数字是3的倍数,则返回“Fizz”,如果是5的倍数,则返回“Buzz”,如果是多个,则返回“FizzBuzz”如果它不符合任何先前的条件,则两者和原始数字):classFizzBuzzdefanswer(number)multiple3=number%3==0multiple5=number%5==0returncasewhen(multiple3andmultiple5)then"FizzBuzz"whenmultiple3then"Fizz"whenmultiple5then"Buzz"el
我想运行一个测试元素顺序的测试我希望订单按日期升序排列。这是我的cucumber功能场景和最后一句话的步骤。Scenario:OrderoftheeventsshouldbeAscendingGivenIamsignedintoanaccountcalled"GorillaTech"asacustomerWhenIfollow"Register"AndIfollow"Events"AndIfollow"Registernewevent"ThenIshouldseetheheader"Usetheformbelowtoregisteranewevent"AndIfillin"Title"
是的,我开始做这个测试了!但是我不知道该用什么=/Rspec+应该吗?Rspec+牛排?迷你测试?cucumber?capybara?可以吗?(cucumber与Shoulda混合)迷你应该吗?(Minitest与Shoulda混合)啊,这么多选择!我很困惑你们用什么,为什么? 最佳答案 如果您刚刚开始,您应该使用默认值并遵循theofficialguides.重要的是你要练习测试。您使用哪种测试库/框架并不重要——这是一种风格选择,在实际练习测试中是次要的——开始测试Rails应用程序的最简单方法是遵循“Golden官方指南布局的
我在Rakefile中有一系列rake任务,我想将其作为我的规范等的一部分进行测试。每个任务都以以下形式定义:task:do_somthing=>:environmentdo#Dosomethingwiththedatabasehereend:environment任务设置ActiveRecord/DataMapper数据库连接和类。我没有将其用作Rails的一部分,但我有一系列测试,我喜欢将其作为BDD的一部分运行。此片段说明了我如何尝试测试rake任务。defsetup@rake=Rake::Application.newRake.application=@rakeloadFile
我在一个ruby项目中使用rspec进行测试,我想说明在使用-q选项时我的程序不应输出任何内容。我试过:Kernel.should_not_receive:puts当有输出到控制台时,这并没有导致测试失败。如何验证文本输出的缺失? 最佳答案 puts在内部使用$stdout。由于它的工作方式,最简单的检查方法是简单地使用:$stdout.should_not_receive(:write)检查没有按预期写入标准输出。Kernel.puts(如上所述)只会导致测试失败被明确地这样称呼(例如Kernel.puts“Sometext”
我想调用一个只会返回一条记录的named_scope,但named_scope会返回一个数组,这没什么大不了的,因为我可以将它与.first链接起来:Model.named_scope(param).first这行得通,我正在努力解决的问题是如何对链接的调用进行stub。有没有人对我如何使用Rspec模拟实现这一点有引用或答案? 最佳答案 我想通了。Client.stub!(:named_scope).and_return(@clients=mock([Client]))@clients.stub!(:first).and_retu
我正在尝试获得最佳的代码覆盖率/开发时间结果目前我使用rspec+shoulda来测试我的模型,使用rspec+capybara来编写我的验收测试。我尝试为一个简单的crud编写一个Controller测试,但它花费的时间太长了,最后我得到了一个令人困惑的测试(可能是我的错)使用rspec进行Controller测试的最佳实践是什么?这是我的测试和我的Controller的要点(一个测试还没有通过):https://gist.github.com/991687https://gist.github.com/991685 最佳答案 也
所以我想开始使用RSpec故事,但我不确定编写Controller、模型和View规范的位置。例如,您有“登录”故事和“用户提供错误的密码”场景,难道您最终测试的不是与Controller/模型规范相同的东西(response.shouldrender...,user.shouldbe_nil等)所以我的问题是:对于那些习惯于使用RoR进行bdd(或故事dd)的人,您是否仍然编写模型/Controller规范?如果是这样,您遵循的工作流程如何(“第一个故事,然后缩小到特定规范”)? 最佳答案 如果您现在开始使用故事(而不是拥有大量遗
GivenIhavearailsappAndI'musingcucumberAndI'musingcapybaraAndIhaveanactionthatresultsinaredirect_to"http://some.other.domain.com/some_path"WhenItestthisactionThenthein-appportionofthetestworksfineButIseethiserror:Noroutematches"/some_path"with{:method=>:get}(ActionController::RoutingError)所以capyb
我们想设置自动化作业(通过Jenkins)以在第三方API出现故障或他们部署了不兼容的API时发出警报。我说的是针对真实的HTTPAPI进行测试,而不是模拟,但是因为我们已经使用rspec编写了模拟,所以我不确定我们是否应该通过编写两个独立的睾丸来重复这项工作。有人有这方面的经验吗?(如果其他工具可以提供帮助,我不限于Ruby/Rspec) 最佳答案 你看过VCR了吗??使用它,您可以“记录您的测试套件的HTTP交互并在未来的测试运行期间重播它们以进行快速、确定性、准确的测试”。在测试来自外部API的预期响应时,我将它与RSpec一