问题标签 [rr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
248 浏览

ruby-on-rails - Rspec:实例类上的 should_receive

这是我正在尝试做的事情:

代码有效,但测试并没有失败……任何人都知道该代码有什么问题吗?

0 投票
3 回答
8029 浏览

ruby - 当一个对象的构造函数构建另一个对象时存根

所以我有一些代码,大大简化,看起来像这样:

换句话说,当我用选项初始化 A 时,它会创建一个 B 并将一组修改后的选项传递给它。

我想测试 B.new 是否获得了正确的论点。现在,我正在这样做,使用 RSpec/RR:

但这有两个问题。

首先,我无法B使用实际选项实例化实际副本。如果我在块内调用 B.new,它会调用存根版本并循环直到堆栈弹出。我可以@b = B.new在 stubbing 之前设置,但是我还不知道将要传入的选项,从而破坏了测试的重点。

(在有人叫我之前:是的,在严格的单元测试教条中,对 A 的测试应该剔除 B 中的任何方法,并且需要大量剔除意味着你的代码首先是糟糕的。)

其次,将它放在测试的设置中感觉不对should,而不是之后放在单独的it ... do ... end块中。但是由于我不能创建一个实际的B(见上文),我也不能真正询问它的构建后状态。

有任何想法吗?

0 投票
1 回答
226 浏览

ruby-on-rails - 模拟验证唯一性回调

你如何模拟validates :name, uniqueness: true一个属性的回调?

我想它会像这样工作:

0 投票
1 回答
742 浏览

ruby-on-rails - 调用了 RR 模拟方法,但规范仍然失败

堆栈:Rails 3.0.7、Mongoid 2.2.5、RSpec 2.11.0、RR 1.0.4

我有一个看起来像这样的订阅模型:

我有一个看起来像这样的规范:

规范失败,但我在控制台中看到了这个输出:

是什么导致模拟对象不捕获方法调用并通过规范?

0 投票
1 回答
270 浏览

ruby - 如何使用自定义 RR 通配符匹配器?

我为RR创建了一个通配符匹配器,它通过将 JSON 字符串解析为哈希来匹配它们。这是因为 JSON(反)序列化不保留顺序;如果我们有:

...然后在(反)序列化之后,我们可能会发现我们的更新方法被调用:

通配符匹配器如下所示:

...我们像这样使用它:

这符合RR 文档。但是,它不mock()期望与 JSON 匹配的参数,而是期望参数是一个MatchesJsonString对象:

0 投票
1 回答
482 浏览

ruby-on-rails - 使用 rr 让出块

我正在尝试使用以下代码测试rr

在 vanillarspec中,你会做这样的事情:

我将如何做同样的事情rr

设置:

我尝试了很多变化:

但它们都不起作用。

0 投票
2 回答
343 浏览

ruby - 用 rr 模拟单元测试 Ruby 块(以前是 flexmock)

如何对以下内容进行单元测试:

这是我的开始:

如何测试块内的内容?

更新

我已将测试转换为规范并切换到 rr 模拟框架:

这将测试调用的事务。如何在块内测试:store['A'] = 'a'

0 投票
1 回答
8519 浏览

ruby - 存根(...)收到意外消息(...)(无参数)

我尝试使用 RR 编写测试。我需要的是模型对象的存根。

我得到的是

我不知道我做错了什么。我想我遵循文档...

0 投票
2 回答
256 浏览

ruby - 使用 rr 更新 mongoid 字段的单元测试

我正在尝试对以下代码进行单元测试:

这是我的尝试

我遇到以下失败

0 投票
1 回答
81 浏览

java - ArrayList 中的 Java ArrayList

我对 Arraylist 中的 ArrayList 有疑问。这是关于具有多个产卵的多个世界。我想一一检查每个世界,并将该世界的所有生成物保存在 ArrayList 中。最后,我有一个 ArrayList,在每个位置(每个位置都是一个世界)上都有另一个 ArrayList,其中包含该世界的生成物。

如果我不知道会有多少个产卵或世界,我该怎么做?我想到了这个:

只看一个世界:

展望世界上的每一个产卵

因此,在我查看了一个世界之后,我已经用位置填充了 ArrayList 生成点。现在我想将 ArrayList 生成点添加到一个新的 ArrayList 世界。之后,我将为下一个世界重复上面的代码,直到我拥有所有的世界。

编辑。我认为它正在工作。当我只有名字时,我很难获得列表的大小。

所以假设我这样做了:allSpawnpoints.put("yourWorld",Spawnpoints); 现在我想获取字符串 yourWorld 的 Spawnpoints 列表的大小。知道我该怎么做吗?

我试过了:int number = allSpawnpoints.get("yourWorld").size(); 看起来这不起作用。

我希望有一个人可以帮助我!谢谢阅读。问候。