![]() |
1
23
您应该模拟now时间方法,以确保它始终与规范中的日期相匹配。您永远不知道什么时候延迟会导致规范失败,因为有几毫秒。这种方法还将确保实际代码和规范上的时间是相同的。 如果您使用的是默认的rspec mock lib,请尝试执行以下操作:
|
![]() |
2
52
这通常是因为rspec尝试匹配不同的对象:例如Time和DateTime。同样,可比较的时间可能会有一些不同,比如几毫秒。 在第一种情况下,可能的解决方案是比较时间戳:
我用简单的 matcher 对于此类情况:
|
![]() |
3
21
我完全同意前面关于存根的回答时间到了。现在. 也就是说这里还有一件事。当您从数据库中比较DateTime时,您会损失一些ruby DateTime对象中的派系时间。在Rspec中以这种方式比较日期的最佳方法是:
|
![]() |
4
8
其中一个问题是Ruby时间对象的精度是纳秒,但大多数数据库的精度是微秒。最好的办法就是去存根时间到了。现在(或使用timecop)和一个整数。阅读我写的帖子: http://blog.solanolabs.com/rails-time-comparisons-devil-details-etc/ |
|
5
0
|
![]() |
6
0
从输出来看,期望值似乎是
|
![]() |
7
0
我喜欢的一个解决方案是在
这样即使在嵌套对象中也完全透明。 |
![]() |
8
0
更清晰的规格:
+1用于在规格中使用TimeCop gem。只要确保测试夏令时在您的规格,如果你的应用程序是受夏令时。 |
![]() |
9
0
我们目前的解决办法是
然后你可以像这样使用它:
|
![]() |
10
0
根据您的规格,您可能可以使用Rails native travel helpers
|
![]() |
Animesh Arya · 关联模型的Rspec 2 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 2 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 2 年前 |
![]() |
Spyros · 从数组中删除nil值,并从引用数组中删除相应的项 2 年前 |
![]() |
Pauli-E · 当div打开并滚动到屏幕上时,向div添加类 2 年前 |
![]() |
ejoka · 如何使用Rails 7模型属性作为CSS标记值 2 年前 |