Tag: 抽象级

如何编写和inheritanceActionController :: TestCase的抽象子类

我有一堆Rails 3.1控制器,它们都有非常相似的测试要求。 我已经提取出公共代码(所有Test :: Unit样式),例如以下三个测试可以完全重用于所有这些: def create new_record = { field_to_update => new_value } create_params = { :commit => “Create”, :record => new_record } post :create, create_params end test “should_not_create_without_login” do assert_no_difference(count_code) do create; end assert_need_to_log_in end test “should_not_create_without_admin_login” do login_as_non_admin assert_no_difference(count_code) do create; end assert_needs_admin_login end test “should_create” do login_as_admin assert_difference(count_code) do create; end […]

Ruby中抽象类的替代方法?

我是Ruby的新手。 一个简单的例子,我需要的: class Animal abstract eat() class Cat < Animal eat(): implementation class Dog < Animal eat(): implementation 换句话说,所有扩展Animal的类都需要eat()方法。 在JAVA中,我只使用一个抽象类,但经过一些研究后我发现许多人不在Ruby中使用它,而建议使用mixin / modules。 但是,我不明白,如果模块可以做的不仅仅是包含一个额外的方法。 确切地说,模块是否可以为类必须实现哪些方法设置要求(如果是,可以赞赏一个例子)? 总而言之,在这种情况下我应该使用什么,当我想确定,所有相同类型的类都有特定的方法并以自己的方式实现它们?