PHP SimpleTest - обработка исключений - PullRequest
3 голосов
/ 27 ноября 2009

У меня есть несколько простых классов, используемых в приложении форума. Я пытаюсь запустить некоторые тесты с помощью SimpleTest, но у меня возникают проблемы с исключениями.

У меня есть раздел кода, который генерирует пользовательское исключение. Есть ли способ поймать это исключение в моем тесте и утверждать, что это то, что я ожидаю?

Это метод в моем классе:

public function save()
  {
      $this->errors = $this->validate();
        try
        {
            if (empty($this->errors))
            {
                Database::commitOrRollback($this->prepareInsert());
            } else {
                throw new EntityException($this->errors);
            } 
        } catch (Exception $e) {
        echo 'Caught exception: ',  $e->getMessage(), "\n";
        }      
  }

Любой совет приветствуется.
Спасибо.

1 Ответ

5 голосов
/ 27 ноября 2009
function testSaveMethodThrows() {
  $foo = new Foo();
  try {
    $foo->save();
    $this->fail("Expected exception");
  } catch (EntityException $e) {
    $this->pass("Caught exception");
  }
}

Или используйте expectException:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...