我正在使用rails Draper gem,现在正在使用Rails的内置MiniTest框架测试我的装饰器方法。
我的full_name
类中有一个user_decorator.rb
方法,并希望为此方法编写测试。我的first_name
模型上还有last_name
和User
个属性。
我的问题是,测试我得到正确输出的正确方法是什么?
方法如下:
def full_name
first_name + ' ' + last_name
end
以下哪种方法是测试我从这种方法得到正确输出的正确方法?
assert_equal 'Jourdan Bul-lalayao', @jourdan.full_name
或
assert_equal @jourdan.first_name + ' ' + @jourdan.last_name, @jourdan.full_name
对我而言,第一种选择似乎是正确的;在第二个选项中,感觉就像我只是再次编写函数并针对该函数测试实际函数。
尽管如此,我希望有任何想法,也许还有其他可能更好的建议!
答案 0 :(得分:1)
取决于您如何填充用户。
第二个选项是再次编写方法,因为您正在测试方法的输出并指定其行为。
第一种方式的(潜在)问题:
对于该特定用户,输出可能相同,但如果方法实现更改为包含中间名,则对于具有中间名的用户可能会有所不同。如果您的测试数据没有改变,您可能会得到误报。