WP_UnitTestCase
を利用している場合、WP_Error
オブジェクトを正しく返して居るか否かのテストにassertWPError
が利用できます。
function test_is_wp_error() {
$test = new WP_Error( 'something happen' );
$this->assertWPError( $test );
}
ちなみにassertNotWPError
を使うと、「WP_Errorではないこと」をテストできます。
function test_is_not_wp_error() {
$test = 'nothing happen';
$this->assertNotWPError( $test );
}
こちらはWordPress4.5.4だとPHP Fatal error: Call to undefined method
が出ましたので、利用には要注意です。
おまけ:両関数のソースコード
ソースコード:http://develop.svn.wordpress.org/trunk/tests/phpunit/includes/testcase.php
function assertWPError( $actual, $message = '' ) {
$this->assertInstanceOf( 'WP_Error', $actual, $message );
}
function assertNotWPError( $actual, $message = '' ) {
if ( is_wp_error( $actual ) && '' === $message ) {
$message = $actual->get_error_message();
}
$this->assertNotInstanceOf( 'WP_Error', $actual, $message );
}
PHPUnitのassertInstanceOf()と、assertNotInstanceOf()のラッパーになっています。