Заглушки для isGuest? isGuest только для чтения. А как правильно сделать заглушку, чтобы в методе, который проверяю, с помощью теста вместо isGuest подставлялось другое значение не знаю.
Может я не правильно понял вопрос "Каким классом у вас реализован компонент user?"...
От EMongoDocument наследуется модель user
А в ней уже вызывается:
Yii::app()->user->login($identity, $duration);
Yii::app()->user->logout()
Yii::app()->user->isGuest()
ну и на счет однозначности уничтожения в конце тестов, я, наверное, не соглашусь. Это зависит от ситуации. У меня используется отдельная база для phpunit и, в большинстве случаях, не удаление созданных данных в тестах влияет только на "захламление" базы, которая периодически ресторится.
в 1 тест их точно нельзя объединить. в каждом тесте несколько входных параметров (которые задаются с помощью провайдера). Каждый тест проверяет отдельный метод класса, который проверяется. С помощью провайдера (т.е. различных входных параметров метода) обеспечивается максимальная покрытие кода этого метода.
На счет самодостаточности - это усложнит тесты (их написание и структуру) и при этом при рефакторинге методов и необходимости последующего изменения тестов, оно тоже усложнится. Если я, не ошибаюсь, и это действительно так, то зачем нужна самодостаточность тестов?
Про то, что желательно делать тесты независимыми я знаю. Но из-за нехватки опыта и знаний не знаю как лучше это реализовать.
Код переделать можно, но будет проще задать последовательность тестов.