2017-02-24 50 views
-1

我在下面创建了一个关注点。我在做什么是我映射列中的值为0,1,2,并返回JSON中的字符串的列。有人能指导我如何编写单元测试用例吗?如何编写关注的规格

module User 
    extend ActiveSupport::Concern 

    included do 
    def user_mapping(user_in_number) 
     user_hash = { 
     '0'=> 'Support', 
     '1'=> 'Developer', 
     '2'=> 'Business Analyst' 
     }.freeze 
     user_hash[user_in_number] 
    end 
    end 
end 

感谢

回答

1

对于任何模块,你可以这样做:

subject = Class.new do 
    include User 
end.new 

assert subject.user_mapping('0'), 'Support' 

Class.new创建anonymous class,在匿名类的上下文中的块进行评估,如此行事像的身体一个普通班。

然后创建一个匿名类的实例并调用由包含模块定义的方法。

通过实际的方法并不需要分配这么多瓦尔方式:如果给定的关键是没有找到

UserMap = { 
    '0'=> 'Support', 
    '1'=> 'Developer', 
    '2'=> 'Business Analyst' 
    }.freeze 

def user_mapping(user_in_number) 
    UserMap.fetch(user_in_number) 
end 

fetch将提高。

我也可能会重新考虑名称User为一个模块,将你永远需要一个User类...