SimpleTest: Как утверждать, что ошибка PHP брошена?

Я выхожу на конечности здесь, но я думаю, что ответ - НЕТ. Программы z / OS COBOL обращаются к DB2, используя потоки в локальную подсистему DB2, используя службы кросс-памяти. Думайте об этом как о сокете, но делайте это, используя низкоуровневое межпроцессное взаимодействие с нулевым копированием. Чтобы сделать то, что вам нужно, потребуются изменения приложения и Java в смеси для интеграции с BizTalk.

7
задан Steve Tauber 9 June 2012 в 02:21
поделиться

4 ответа

Введите подсказывающие броски E_RECOVERABLE_ERROR, который может быть пойман SimpleTest начиная с версии 5.2 PHP. Следующее зафиксирует любую ошибку, содержащую текст, "должен быть экземпляр". Конструктор PatternExpectation берет жемчуг regex.

public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
    $notAnObject = 'foobar';
    $this->expectError(new PatternExpectation("/must be an instance of/i"));
    $object = new Object($notAnObject);
}
13
ответ дан 6 December 2019 в 10:53
поделиться

Оказывается, SimpleTest на самом деле не поддерживает это. Вы не можете зафиксировать Фатальные ошибки PHP в SimpleTest. Вывод подсказок типа является большим, кроме Вас не может протестировать его. Введите подсказывающие броски фатальные ошибки PHP.

2
ответ дан 6 December 2019 в 10:53
поделиться

PHP имеет и ошибки и исключения, которые работают немного отличающиеся. Передача неправильного типа к функции typehinted повысит исключение. Необходимо поймать это в тестовом сценарии. Например:

public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
  $notAnObject = 'foobar';
  try {
    $object = new Object($notAnObject);
    $this->fail("Expected exception");
  } catch (Exception $ex) {
    $this->pass();
  }
}

или просто:

public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
  $this->expectException();
  $notAnObject = 'foobar';
  $object = new Object($notAnObject);
}

Но обратите внимание, что это остановит тест после строки, где исключение происходит.

2
ответ дан 6 December 2019 в 10:53
поделиться

необходимо ожидать ошибку, прежде чем это произойдет, затем SimpleTest будет глотать его и считать передачу, если тест доберется в конец и нет никакой ошибки затем, то это перестанет работать. (существует expectError и expectException, которые действуют таким же образом, для PHP (нефатальные) ошибки и Исключения, соответственно.)

1
ответ дан 6 December 2019 в 10:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: