To specify the classes you need (and not every class) from a module after requiring makes sense. Given that Train is a namespace, I updated my tests to reflect your note.

Are there any particular advantages or disadvantages using the ```ruby let(:subject) { ... } ``` syntax?

So far from what I gathered, we write tests to express intent. What would be some use cases where explicitly embedding the double and the class instance within the example test would be appropriate?

For instance, if I am writing a custom class with 10+ instance methods, does it make sense to write a  ```ruby let(:subject) { ... } ``` once to create an instance and have it shared among the instance methods, or to explicitly create the instance with the example test?