如何访问在测试中呈现我的视图的类实例?

时间:2015-07-24 15:01:37

标签: ruby-on-rails minitest stub rake-task

我正在尝试测试rake任务,该任务会刮擦我的网站并将内容推送到弹性搜索服务器;任务工作正常。但是测试失败了,因为在一个视图中我随机选择了一些这样的值:

[:breast,:ovarian][rand(2)]
(rand * 4)-2
rand(Date.new(2006)..Time.now.to_date)

这意味着我需要存根rand。为了存根rand,我需要访问正在调用它的类实例,在这种情况下,它是呈现我的视图的任何类。调用puts self.class只返回Class和一个id,那么如何才能获取该实例才能存根?

我可以将这些值作为实例变量从控制器传递到视图中,如果获得控制器的操作会更容易。

1 个答案:

答案 0 :(得分:0)

长话短说:最好提取有问题的逻辑并将其放在帮手中。通过这种方式,您可以轻松地将其存根,甚至可以根据需要对其进行单元测试。此外,这可以提高代码的整体质量(逻辑不属于视图)。

另外,rand是来自Kernelso it is already "stubable"

的方法