Testing Game and Guess objects

Testing game initializer; word is selected from dictionary, letters are selected from word
Testing guess credentials; player inputs guess, player gets incorrect guess, player gets correct guess
You don't want your test suite to have to stop and wait, because you want to be able to run them without having to sit there and babysit them. Sometimes you run tests from remote servers and are unable to type input into a command line. What we can do, is "stub out" the `gets` method to return a known output instead of asking the user to type something in which we can't guarantee what it will be. We can stub the method `gets` because it is external to the class we are testing. In other words, it is not the "System Under Test". Never stub methods on the "System Under Test" (because then you are changing how the system that you are trying to test works, and the whole point of testing it is to see if the ACTUAL system works).

Assuming you remove the `STDIN` bit, you can stub out `gets` on your instance of `Guess` like this:

```ruby
 guess = Guess.new
 allow(guess).to receive(:gets) { "input" }
```

Then you know that the `gets` method will return `"input"` and you can use that knowledge to your advantage in your test. The spec also won't halt and wait for user input.