【发布时间】:2019-02-10 13:54:32
【问题描述】:
我正在 RSpec 中编写单元测试,以检查在方法移动或删除后创建的实例是否不再存在。
例如,我有一个 Airport 类和一个 Plane 类,并且 airport = Airport.new 使用存储的 Plane.new 实例进行初始化。当#takeoff 方法运行时,Plane.new 存储在其他地方或#pop'ped。
我如何证明这个 Plane.new 的确切实例不包含在机场中?有没有办法捕获方法所作用的对象的 id?
我正在考虑的测试是这样的:
describe Airport do
it "confirms plane is not there after #takeoff" do
airport = Airport.new
airport.takeoff
expect(airport).not_to include(*ID OF PLANE MOVED/POPPED*)
end
end
未来,Airport 可以用任意数量的飞机初始化,所以我相信有必要使用 id 来确认,但我很乐意听到其他情况。
【问题讨论】:
-
你看过object_id方法吗? ruby-doc.org/core-2.6.1/Object.html#method-i-object_id
标签: ruby object rspec instance