Ruby on Rails - 依赖注入难题

时间:2017-07-27 18:04:42

标签: ruby-on-rails ruby unit-testing dependency-injection ruby-on-rails-2

我正在研究Rails 2应用程序,并且缺少依赖注入容器让我想知道依赖关系及其对单元测试的影响。我有以下内容:

控制器

SELECT A, MAX(C) as C, MAX(B) as B
FROM ((SELECT Tbl3.A, Tbl1.C, Tbl1.B
       FROM DB1.dbo.Tbl1 LEFT JOIN
            DB2.dbo.Tbl3
            ON Tbl1.B = Tbl3.A
       WHERE ….
      ) UNION
      (SELECT Tbl3.A, Tbl2.C, Tbl2.B
       FROM DB1.dbo.Tbl2  LEFT JOIN 
            DB2.dbo.Tbl3
            ON Tbl2.B = Tbl3.A
       WHERE …..
     )
    ) t
GROUP BY A;

ClassA的

def some_action
  object_a = ClassA.new
  object_a.do_something
end

因为ClassA的do_something方法实例化了object_b,所以我无法在单元测试中模拟object_b的行为。解决这个问题的方法是将初始化参数从控制器传递给ClassA,然后在ClassA的初始化中,我可以为ClassB传递所需的参数。

然而,通过这样做,我向控制器揭示了它不应该知道的有关ClassB(它的init参数)的知识。

思想?

0 个答案:

没有答案