在我的宝石中,我有错误消息,我一直在重复这样:
def validate_configuration!
fail(ArgumentError, "You must specify a valid access_key") if access_key.nil? || access_key.empty?
fail(ArgumentError, "You must specify a valid access_token") if access_token.nil? || access_token.empty?
fail(ArgumentError, "You must specify a valid environment") if environment.nil? || environment.empty?
end
然后在我的测试中我重复相同的事情:
it "is required and cannot be a blank string" do
expect { create_client(access_key: nil) }.to raise_error(ArgumentError, "You must specify a valid access_key")
expect { create_client(access_key: '') }.to raise_error(ArgumentError, "You must specify a valid access_key")
end
我想将所有这些消息存储在某个对象中的单独文件中(这是令人困惑的部分),然后像这样访问它们:
messages.nil_error_for(:access_key)
messages.empty_error_for(:access_key)
更好的是,如果可能的话,我想完全跳过消息变量。
我应该使用Struct,模块吗? ruby中的惯用数据结构对于这种情况是理想的吗?