我有一个蓝图:

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

“context”是model的一个属性,也是rspec的一个保留词。当我试图制造和反对时,我在“上下文”行得到了参数错误。
有什么办法克服这种情况吗?

最佳答案

无法与Machinist 2.0.0.Beta2复制。
machinist通过重写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

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

09-04 17:05
查看更多