【发布时间】:2012-07-20 21:26:27
【问题描述】:
我正在使用 Sinatra (1.2) 和 RSpec (2.5),并希望创建一个具有属性 TDD 样式的新对象。最终结果应该是这样的:
class User
def initialize(name)
@name = name
end
end
我知道我必须在实施之前编写示例,但我想在这里解释我的问题。 :) 这是到目前为止我没有工作的规范:
describe User
it "creates a new user object" do
name = mock("A name")
user = mock(User) # shouldn't do this, see the reply's
user.should_receive(:name=).with(name)
User.new(name)
end
end
当我运行 RSpec 时,我收到“预期:1 次,收到 0 次”错误。知道如何解释我想分配 name 属性的 RSpec 吗?
注意:我没有使用 Rails,也没有使用 ActiveRecord 或其他任何东西,只是使用 Ruby。
【问题讨论】:
-
供将来参考:模拟用户对象不是一个好主意,我的错。谢谢大家的意见。
标签: ruby attributes rspec setter