草庐IT

rspec-mocks

全部标签

ruby - Rspec : expect vs expect with block - what's the difference?

刚刚学习rspec语法,我注意到这段代码有效:context"givenabadlistofplayers"dolet(:bad_players){{}}it"failstocreategivenabadplayerlist"doexpect{Team.new("Random",bad_players)}.toraise_errorendend但是这段代码没有:context"givenabadlistofplayers"dolet(:bad_players){{}}it"failstocreategivenabadplayerlist"doexpect(Team.new("Rando

ruby - Rspec:应该是(这个或那个)

在两个(或更多)结果中的任何一个都可以接受的情况下,编写rspec的最佳方式是什么?这是我想做的一个例子。这显然是错误的(我认为),但它应该让您了解我正在努力完成的事情的要点:it"shouldbeheadsortails"doh="heads"t="tails"flip_coin.shouldbe(h||t)end是的,我知道我可以编写自己的rspec匹配器“should_be_one_or_the_other(option1,option2)”,但这似乎有点多-我希望有更好的解决方案。 最佳答案 ActiveSupport提供O

ruby - RSpec allow/expect 与 just expect/and_return

在RSpec中,特别是版本>=3,有什么区别:使用allow设置带有返回测试替身的参数的消息期望,然后使用expect对返回的测试替身进行断言只需使用expect设置带有参数的期望并返回测试替身还是只是语义?我知道用expect提供/指定返回值是thesyntaxinRSpecmocks2.13,但据我所知,thesyntaxchangedinRSpecmocks3使用允许。但是,在下面的(传递的)示例代码中,使用allow/expect或仅使用expect/and_return似乎产生相同的结果。如果一种语法比另一种语法更受欢迎,也许我会期望有某种弃用通知,但由于没有,这两种语法似乎

ruby-on-rails - rspec 共享示例与共享上下文

shared_examples和shared_context之间的真正区别是什么?我的观察:我可以使用两者测试相同的东西(即使用shared_examples或shared_context)但是如果我使用后面的测试,我的一些其他测试会失败。观察#1:我比较了shared_examples和shared_context根据https://www.relishapp.com/上的文档语法差异是:shared_context用于定义一个block,该block将通过隐式匹配元数据在示例组的上下文中进行评估示例:shared_context"sharedstuff",:a=>:bdo...en

ruby-on-rails - 与 RSpec 的内置模拟框架相比,Mocha 有哪些优势?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭2年前。Improvethisquestion我注意到很多人更喜欢Mocha而不是RSpec的内置模拟框架。有人可以解释Mocha或任何替代方案相对于内置模拟框架的RSpec的优势吗?

ruby-on-rails - 为什么我应该在 Rails 中使用 RSpec 或 shoulda?

我正在设置一个Rails应用程序,我刚刚完成了一些单元测试,我的friend说显然固定装置不再酷,人们现在正在使用RSpec或shoulda。我想知道使用这些其他工具包的实际好处是什么。任何信息都将不胜感激。-fREW 最佳答案 与RSpec相比,我个人更喜欢Shoulda。我发现Shoulda的语法不如RSpec神奇。我对RSpec的问题是,是的,当我大声朗读它时它的可读性很强,但是当我开始编写它时,嗯,我永远不确定如何应该编写给定的断言。PragDaveexplainstheproblembetterthanme.他还likes

ruby-on-rails - 如何使用 Rspec 检查 ActiveJob 中排队的内容

我正在RailsAPI应用程序中使用reset_password方法。当这个端点被命中时,一个ActiveJob被排队,它将触发对Mandrill(我们的交易电子邮件客户端)的请求。我目前正在尝试编写测试以确保在命中Controller端点时ActiveJob正确排队。defreset_password@user=User.find_by(email:params[:user][:email])@user.send_reset_password_instructionsendsend_reset_password_instructions在创建代码如下的ActiveJob之前创建一些u

ruby-on-rails - RSpec中mock和mock_model有什么区别

我最近看到了不同的教程,其中人们同时使用了mock和mock_model函数。在RSpectutorialforcontrollers他们使用mock_model函数,但就在documentationofRSpec中,只有mock函数,没有mock_model我尝试自己运行一些测试,但我没有发现任何真正的区别,因为当我使用这两个函数中的任何一个时一切正常,所以有什么区别吗? 最佳答案 正如jenger所说,mock_model是为事件记录构建的扩展:这是1.2.6中的来源:defmock_model(model_class,opti

ruby - Rspec 让作用域

我相信我对rspeclet和范围界定有疑问。我可以在示例(“it”block)中使用let定义的方法,但不能在外部(我执行let的describeblock)。5describeConnectiondo8let(:connection){described_class.new(connection_settings)}910it_behaves_like"anyconnection",connection24end当我尝试运行此规范时,出现错误:connection_spec.rb:10:undefinedlocalvariableormethod`connection'forClas

ruby-on-rails - 如何让 Rspec 运行嵌套在文件夹下的所有测试?

我喜欢在单独的选项卡中运行Spork来运行我的Rspec测试。我通常使用rspecspec运行我的测试,我打算通过它说“递归搜索并运行spec文件夹中的所有内容。”我最近意识到这实际上并没有运行我的所有测试。我现在在spec/requests中有一个未运行的规范文件。我知道这一点是因为我编辑了其中一个测试以引发错误,并运行以下命令:rspecspec-没有出现错误。rspecspec/requests-仍然没有出现错误,0个示例,0个失败!rspecspec/requests/my_controller.rb-宾果游戏。17个示例,1个失败,失败有我的错误消息。为什么Rspec没有找到