Я пытаюсь протестировать класс интерфейса веб-сервиса, используя PHPUnit. В принципе, этот класс вызывает вызовы объекта SoapClient. Я пытаюсь протестировать этот класс в PHPUnit с помощью метода getMockFromWsdl
, описанного здесь:
Однако, поскольку я хочу протестировать несколько методов из этого же класса, каждый раз, когда я настраиваю объект, мне также нужно настроить mock-объект WSDL SoapClient. Это вызывает фатальную ошибку:
Fatal error: Cannot redeclare class xxxx in C:\web\php5\PEAR\PHPUnit\Framework\TestCase.php(1227) : eval()'d code on line 15
Как я могу использовать один и тот же mock-объект для нескольких тестов без необходимости регенерировать его из WSDL? Кажется, это проблема.
-
После того, как вас попросили опубликовать некоторый код, чтобы посмотреть, здесь метод установки в TestCase:
protected function setUp() {
parent::setUp();
$this->client = new Client();
$this->SoapClient = $this->getMockFromWsdl(
'service.wsdl'
);
$this->client->setClient($this->SoapClient);
}