Вместо того, чтобы полагаться на конкретный экземпляр проигрывателя, запишите свои юнит-тесты в интерфейс (или эквивалент) и положитесь на насмешки или другое взаимодействие, чтобы подтвердить, что игрок находится не в правильном состоянии, а просто что правильные звонки (с точки зрения класса GameMaster.
Если вы не можете проверить правильное поведение класса GameMaster, не полагаясь на проверку конечного состояния Игрока, это признак того, что ваши обязанности неуместны. GameMaster должен отвечать за сообщение Игроку о том, что произошло , а Игрок должен нести ответственность за принятие соответствующих действий.
Это также преимущество, поскольку оно означает, что тесты для GameMaster будут зависеть только от поведения класса GameMaster, и к ним не нужно прикасаться, если класс Player меняет свое поведение.
Избегайте добавления геттеров для юнит-тестов. Когда у вас возникнет желание добавить геттер, вместо этого используйте тестирование взаимодействия (как я только что описал) вместо тестирования на основе состояния.