2

正在研究将@protocol 复制到@dest 的RSpec 测试,并看到了这个:

[26] pry(#<RSpec::ExampleGroups::ProtocolsController::ProtocolCopy>)> @protocol.step_items.count
=> 3
[27] pry(#<RSpec::ExampleGroups::ProtocolsController::ProtocolCopy>)> assigns(:dest).step_items.count
=> 3
[28] pry(#<RSpec::ExampleGroups::ProtocolsController::ProtocolCopy>)> @protocol.step_items[2].note
=> "note3"
[29] pry(#<RSpec::ExampleGroups::ProtocolsController::ProtocolCopy>)> assigns(:dest).step_items[2].note
=> "note3"
[30] displayed an instance variable.  Removed for berevity  
[31] pry(#<RSpec::ExampleGroups::ProtocolsController::ProtocolCopy>)> @protocol.step_items.last.note
=> "note3"
[32] pry(#<RSpec::ExampleGroups::ProtocolsController::ProtocolCopy>)> assigns(:dest).step_items.last.note
=> "note2"
[33] pry(#<RSpec::ExampleGroups::ProtocolsController::ProtocolCopy>)> assigns(:dest).step_items.last.last?
=> false
[34] pry(#<RSpec::ExampleGroups::ProtocolsController::ProtocolCopy>)>

pry session 的 pastebin 在这里可能更容易阅读

我的gemfile 在这里

似乎assigns(:dest).step_items.last正在返回数组中的倒数第二个项目。

结果是可重现的。对我来说似乎是一个错误。这是一些奇怪的 RSpec 副作用吗?这是否与我对acts_as_list 的使用有关?无论哪种方式,“最后”似乎都是错误的结果。

4

0 回答 0