danielbachhuber / unholy
使用jQuery风格的选择器进行WordPress的标记测试。
dev-master
2016-04-11 18:59 UTC
Requires
- php: >=5.3.0
- masterminds/html5: ^2.1
- querypath/querypath: ^3.0.4
This package is auto-updated.
Last update: 2024-08-24 04:28:52 UTC
README
使用jQuery风格选择器进行WordPress的标记测试。使用PHPUnit、WordPress单元测试套件、QueryPath和HTML5-PHP。
虽然不神圣,但有效。
安装
以下说明假设您已经在项目中使用PHPUnit和WordPress单元测试套件。如果是这样,您可以
- 使用Composer要求Unholy:
composer require danielbachhuber/unholy
- 使用Composer安装依赖项:
composer install
- 通过在您的
bootstrap.php
文件末尾添加require dirname( dirname( __FILE__ ) ) . '/vendor/autoload.php';
将Unholy加载到测试套件中。
使用
Unholy_Testcase
类继承自WP_UnitTestcase
类。更新您项目的测试类以继承Unholy_Testcase
。
扩展Unholy_Testcase
类公开了两个辅助方法:get_permalink_as_dom()
和get_feed_as_dom()
。可以使用这些方法获取表示视图的DOMDocument式的对象。然后,使用qp()
函数使用jQuery风格的选择器导航对象。
以下是如何测试网站的标题和描述的示例
<?php class Test_TwentyFifteen_Theme extends Unholy_Testcase { public function test_header() { update_option( 'blogname', 'Unholy Site Title' ); update_option( 'blogdescription', 'Unholy Site Description' ); $dom = $this->get_permalink_as_dom( '/' ); $this->assertEquals( 'Unholy Site Title', qp( $dom, '#masthead .site-title' )->text() ); $this->assertEquals( 'Unholy Site Description', qp( $dom, '#masthead .site-description' )->text() ); } }
以下是如何测试您的RSS源中帖子示例
<?php class Test_RSS_Feed extends Unholy_Testcase { public function test_rss_feed_loads_post() { $user_id = $this->factory->user->create( array( 'display_name' => 'Unholy Author' ) ); $this->factory->post->create( array( 'post_title' => 'Unholy Post Title', 'post_author' => $user_id ) ); $dom = $this->get_feed_as_dom( '/feed/' ); $this->assertEquals( 'Unholy Post Title', qp( $dom, 'channel item title' )->eq(0)->text() ); $this->assertEquals( 'Unholy Author', qp( $dom, 'channel item dc|creator')->eq(0)->text() ); } }