新手,问的问题有可能比较愚蠢,见谅。
我正在读 The RSpec Book,读到 69-70 页左右的时候遇到了怎么都想不通的问题。
我可以理解 RSpec double
了伪的 output
对象用来通过测试,但真实的代码里,当 Game
类实例化的时候,它是怎么知道 output
对象是哪里来的?
没错,我们是在 step_definitions
里写了 Output
类,并且实例化了 output
对象,但 step_definitions
难道不是属于测试的代码么?为什么真实的代码也可以接收到来自测试代码中的对象呢?
而且,我也能理解 Cucumber 在 env.rb
文件中,将真实代码所在的路径导入到了 $LOAD_PATH
里,所以 Cucumber 可以接触到真实代码以完成测试这个一点也不意外,但是真实代码里面既没有 require
测试代码,也没有类似 env.rb
这样的机制,它究竟是怎么知道 output
对象来自何处呢?
真心迷惑啊,吃不下饭了都...求高手指教!