如何编写规范以备关注

时间:2017-02-24 15:45:09

标签: ruby ruby-on-rails-4

我在下面创建了一个问题。我正在做的是我从一个具有值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 个答案:

答案 0 :(得分: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类......