我是wordpress开发新手,我有自己的自定义wordpress插件,允许管理员点击多个作者并将所有meta标签保存在数据库中。它工作正常。但我想为此生成测试用例。我安装了phpunit,但我不知道如何编写测试用例。Wordpress插件+ phpunit测试
public function testOne()
{
$this->factory->post->create();
}
我试过这个,但不明白它是如何工作的。
我是wordpress开发新手,我有自己的自定义wordpress插件,允许管理员点击多个作者并将所有meta标签保存在数据库中。它工作正常。但我想为此生成测试用例。我安装了phpunit,但我不知道如何编写测试用例。Wordpress插件+ phpunit测试
public function testOne()
{
$this->factory->post->create();
}
我试过这个,但不明白它是如何工作的。
这并不难,但它绝对不是微不足道的。你需要建立一个测试WordPress数据库只是为PHPUnit的运行测试
我发现真正有用的这些指南: https://codesymphony.co/writing-wordpress-plugin-unit-tests/
https://engineering.hmn.md/guides/writing-code/writing-tests/
为了获取PHPUnit的需要设置文件一个WordPress的测试环境,我必须得到一个新的WordPress目录:
https://core.trac.wordpress.org/browser/trunk?order=name
而我对陷入困境一会儿用的MySQLi尽快未按照我的单元测试开始,但看完这个与设置改变固定它:
https://core.trac.wordpress.org/ticket/39327
现在我其实可以修复的单元测试发现:)的错误。
首先,您应该使用用于Codeception的WordPress模块,其中包括PHPunit WPTestCase和许多其他工具。
有两种基本方法在WordPress测试是这样的:
您可以用浏览器进行测试。这被称为验收测试。您列出了证明您正在测试的概念的所有操作,然后运行浏览器[或浏览器模拟器]逐步执行任务。您可以查看数据库以了解您期望看到的结果,并证明结果正确。在你的情况下,你可能想要设置一些帖子,点击多个作者,然后检查数据库中你想要的元标记。它看起来是这样的:
$I = /*am a */ new AcceptanceTester($scenario);
$I->loginAsAdmin();
$I->amOnPage("/wp-admin/post-new.php");
$I->fillField('#content', "lorum ipsum");
$I->click('#publish');
另一种方法是封装在一个OOP类的动作,并使用WPUnit测试工具进行测试。 Codeception使用WordPress核心团队使用的同一个PHPUnit库,以及一堆其他工具。 WPUnit方法将数据库加载到内存中,并可以执行诸如安装虚拟帖子等插件的工作。所以你的情况,你可能有一个类:
class SystemActionSaveMetaTags{
public function doSaveMetaTags()
}
你可能有一个名为test
itShouldSaveMetaTags(){
$id = wp_insert_post();
$SystemActionSaveMetaTags = new SystemActionSaveMetaTags;
$SystemActionSaveMetaTags->doSaveMetaTags($id);
$this->assertTrue($this->checkForCorrectMetaTags($id));
}
这里是关于主题的教程,因为它涉及到WordPress: https://wp-bdd.com/wp-codeception-tutorial/
你可以从这里开始(https://phpunit.de/manual/current/en/index.html) – xmike