草庐IT

从玄学走向科学:AB测试驱动的科学增长

全部标签

ruby-on-rails - 测试 : how to focus on behavior instead of implementation without losing speed?

似乎有两种完全不同的测试方法,我想引用它们。问题是,这些意见是在5年前(2007年)提出的,我很感兴趣,从那以后发生了什么变化,我应该走哪条路。BrandonKeepers:Thetheoryisthattestsaresupposedtobeagnosticoftheimplementation.Thisleadstolessbrittletestsandactuallyteststheoutcome(orbehavior).WithRSpec,Ifeellikethecommonapproachofcompletelymockingyourmodelstotestyourcontr

ruby-on-rails - 如何为 Rails Controller 添加延迟以进行测试?

我正在测试Web应用程序的前端,并想测试在AJAX请求之间的各种延迟下,某些转换是如何出现的。有什么方法可以向我的Controller添加sleep(1500)以延迟响应? 最佳答案 Controller是这样的:defcatalog#Makestherequestpause1.5secondssleep1.5...end更好的是:只为开发环境添加sleep。 关于ruby-on-rails-如何为RailsController添加延迟以进行测试?,我们在StackOverflow上找到

ruby - 如何设置方法测试中使用的私有(private)实例变量?

给定一个包含几个实例变量和一些方法的类。一些实例变量设置为可通过attr_reader和attr_accessor访问。因此其他的都是私有(private)的。一些私有(private)实例变量在一个实例方法中设置,并在另一个方法中读取/使用。我使用RSpec进行测试。由于我对Ruby还是个新手,并且希望把所有事情都做好,所以我将我的测试定义为相当细粒度的。因此,我为每个实例方法获得了一个describeblock,它们本身被划分为context和it的子集。一般环境先决条件用before定义。但是,当测试其中一种使用但未设置私有(private)变量的方法时,我需要调用另一种方法,即

ruby - 在 Ruby (rspec) 中测试私有(private)方法

这个问题在这里已经有了答案:Howtospecaprivatemethod(4个答案)关闭9年前。是的,我知道,测试私有(private)方法不是一个好主意(而且我阅读此线程-http://www.ruby-forum.com/topic/197346-还有一些其他)但是我怎样才能测试下面的代码呢?我使用xmpp4r。在我的公共(public)方法#listen中,我开始接收jabber像这样的消息:deflisten@client.add_message_callbackdo|m|do_things_with_message(m)endendprivatedefdo_things_w

ruby-on-rails - 如何组织小型测试/单元测试?

在几个项目中使用RSpec之后,我尝试了minitest/unit。到目前为止我很喜欢它,但我想念使用描述/上下文block以逻辑方式对我的测试/规范进行分组。我知道minitest/spec提供了这个功能,但我喜欢minitest/unit感觉更接近准系统Ruby。是否有任何gem为minitest/unit提供描述/上下文支持?或者,我应该在minitest/unit中忍受我冗长、无组织的测试文件吗? 最佳答案 我知道有几个来自RSpec的人为了同一个问题而苦苦挣扎。他们喜欢使用describe/contextblock进行嵌套

ruby-on-rails - 如何使用 RSpec 测试局部渲染

我想根据某些条件测试渲染特定部分。例如,在模型显示操作Viewshow.html.erb我有:"partial1"%>"partial1"%>我试过:response.shouldrender_template("partial_name")但它告诉它渲染了“显示”模板expectingbutrenderingwith我做错了什么? 最佳答案 也试试这个response.shouldrender_template(:partial=>'partial_name') 关于ruby-on-r

ruby - 如何在 ruby​​ 中针对正则表达式测试整个字符串?

如果整个字符串匹配(而不是子字符串),我如何针对正则表达式设置字符串以返回true?例如:test(\ee\,"street")#=>returnsfalsetest(\ee\,"ee")#=>returnstrue!谢谢。 最佳答案 您可以用\A匹配字符串的开头,用\Z匹配结尾。在ruby​​中,^和$也分别匹配行的开头和结尾:>>"a\na"=~/^a$/=>0>>"a\na"=~/\Aa\Z/=>nil>>"a\na"=~/\Aa\na\Z/=>0 关于ruby-如何在ruby​​

ruby - 在 Rspec 测试中运行 Rake 任务

我正在构建一个集成测试套件,我需要一个干净的数据库来处理一些逻辑。如何在我的一个测试中运行db:test:purge任务?我正在使用:ruby1.9.2、rails3.0.9、rspec2.6 最佳答案 您可以按如下方式调用Rake任务:require'rake'Rake::Task[name].invoke在这种情况下,这将导致以下代码:require'rake'Rake::Task['db:test:purge'].invoke 关于ruby-在Rspec测试中运行Rake任务,我们

ruby-on-rails - 如何测试 (ActiveRecord) 对象是否相等

在Rails3.0.3上的Ruby1.9.2中,我试图测试两个Friend之间的对象相等性(类继承来自ActiveRecord::Base)对象。对象相等,但测试失败:Failure/Error:Friend.new(name:'Bob').shouldeql(Friend.new(name:'Bob'))expected#got#(comparedusingeql?)只是为了笑,我还测试了对象身份,正如我预期的那样失败了:Failure/Error:Friend.new(name:'Bob').shouldequal(Friend.new(name:'Bob'))expected#=

Ruby 与计算机科学相关的 yield 特性

我最近发现了Ruby的blocks和yielding特性,我想知道:这在计算机科学理论方面适合什么地方?它是一种函数式编程技术,还是更具体的东西? 最佳答案 Ruby的yield不像C#和Python中的迭代器。一旦您理解了block在Ruby中的工作原理,yield本身实际上是一个非常简单的概念。是的,block是一种函数式编程特性,尽管Ruby并不是一种合适的函数式语言。事实上,Ruby使用方法lambda来创建block对象,这是从Lisp的语法中借来的用于创建匿名函数的——这就是block。从计算机科学的角度来看,Ruby的