我正在使用Ruby on Rails中的项目。我们有一个控制器动作,它使用一个gem中的模块。这个宝石还没有完成,它不在文件系统上。在没有必需的模块文件的情况下测试ruby类
我被告知模拟模块以测试控制器。有没有办法测试这个没有真正的宝石?嘲笑'要求'的电话工作? 我们目前正在使用Mocha进行嘲弄和剔除。
有一种方法可以模拟Python中的导入。也许有类似的回答来嘲笑红宝石中的需求。 How to mock an import
或者请让我知道什么是处理这个问题的最佳方法。
更新:告诉我嘲笑它的人,建议添加一个存根文件,但这需要向控制器添加测试代码,我不想这样做。
更新2:控制器使用模块中声明的方法。
如果有人告诉你嘲笑它,而你不知道如何,为什么不问那个人该怎么做呢? – 2013-04-05 17:40:22
我问那个人。他建议添加一个存根文件,但我需要在控制器中要求它,并且我不想用测试代码破坏控制器。 – ieldanr 2013-04-05 17:52:56
控制器实际上是否需要模块中的任何功能?如果没有,请在加载控制器之前将其定义为空模块,或者在加载rails环境之前测试整个堆栈。 – 2013-04-05 18:10:01