继承机械师蓝图中的属性

时间:2011-03-02 18:13:53

标签: ruby testing machinist

使用Machinist,是否有某种方法可以定义蓝图,以便从其他蓝图继承属性?我查看了我发现的所有文档和示例,但我还没有看到它发生过。

我想做这样的事情:

User.blueprint do
    name
    email
end

User.blueprint(:admin) do
    is_admin { true }
end

User.blueprint(:editor) do
    is_editor { true }
    group
end

User.blueprint(:contributor) do
    is_editor { true }
end

他们都从第一个蓝图继承了名称/电子邮件,并且:contibutor蓝图继承了:编辑器蓝图中的group属性。

这可能吗?

1 个答案:

答案 0 :(得分:1)

是的,这部分是可能的,至少对机械师1来说(我没有尝试使用机械师2)。您只能从给定类的默认蓝图继承属性。

您的语法是正确的,请参阅https://github.com/notahat/machinist/tree/1.0-maintenance中的“命名蓝图”,但您的蓝图撰稿人直接继承了默认的用户蓝图。您必须在贡献者蓝图中手动设置组属性。

创建管理员用户的语法是User.make(:admin)