Tôi đang thử nghiệm một biến cá thể cấp lớp (và định vị) trong một đá quý bằng cách sử dụng RSpec. Tôi cần phải kiểm tra những điều sau đây:Kiểm tra biến lớp RSpec
- Giá trị mặc định chính xác được cung cấp nếu setter không bao giờ được sử dụng.
- Biến có thể được cập nhật thành công thông qua trình cài đặt.
Rõ ràng là có sự cố đơn đặt hàng tại đây. Nếu tôi thay đổi các giá trị bằng cách sử dụng các setters, tôi mất bộ nhớ của giá trị mặc định là gì. Tôi có thể lưu nó vào một biến trước khi kiểm tra setter và sau đó thiết lập lại giá trị ở cuối, nhưng điều đó chỉ bảo vệ tôi nếu tất cả các thử nghiệm setter theo cùng một thực hành.
Cách tốt nhất để kiểm tra giá trị mặc định của biến là gì?
Dưới đây là một ví dụ đơn giản:
class Foo
class << self
attr_accessor :items
end
@items = %w(foo bar baz) # Set the default
...
end
describe Foo do
it "should have a default" do
Foo.items.should eq(%w(foo bar baz))
end
it "should allow items to be added" do
Foo.items << "kittens"
Foo.items.include?("kittens").should eq(true)
end
end
ohh, Vì vậy, bạn có nghĩa là một cái gì đó như 'Foo.bar = 1'? –
Có, mã được cập nhật với một ví dụ. –