3

我有一个蓝图:

Model.blueprint(:something) do
  name "Some name"
  context "some context"
end

“context”是Model的属性,也是RSpec的保留字。当我尝试制作和反对时,我在“上下文”行得到 ArgumentError。

任何想法如何克服这种情况?

4

1 回答 1

0

无法使用 Machinist 2.0.0.beta2 复制此内容。

机械师通过覆盖method_missing?然后根据这些参数分配属性来工作。如果 rspec 以某种方式将context方法分配给机械师的车床对象,则该方法将在之前调用method_missing?。如果您仍然遇到此问题,您可以remove_method :context在评估属性之前尝试使用:

Model.blueprint(:something) do
  remove_method :context
  name "Some name"
  context "some context"
  alias_method :context, :describe
end

我不知道这是否可行,因为我无法在本地复制它,但我会试一试。

于 2012-02-10T21:58:11.137 回答