Refactoring preamble
Let's write one more unit test for the game. This time we will focus our attention on the main class AttackOfTheOrcs
. When the play
method is called, the first thing it does is to randomly occupy the five huts. We will write a test to verify that there are exactly five huts. Another thing to test is that the hut occupant must be an instance of the class AbstractGameUnit
, or should be of the type None
.
The _occupy_hut
method has the related code. But this necessitates writing a test for a non-public method (or call it protected or private).
What you say is right! Although Python does not restrict you from calling methods that start with an underscore, we should be nice to others, and try to avoid calling such methods. |
So how do we handle this situation? Here is a list of the available options:
In the test, create an instance of
AttackOfThOrcs
, and directly call the protected method.Transform this method into a
public
method (remove the underscore prefix from the name...