I’ve decided to work on the WPDb Codeception module to complete a fully working first iteration of it to use in my imminent test writing and am slowly getting my head around Codeception modules mechanics and how much “sugar” I want to trade with customization possibility.
As a first more meaningful step I’ve tackled the users
table and added two small methods to add and check for a user at database level; in an acceptance test loading the WPDb
module
<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('create and check for a user');
// create a subscriber user with user login and id as bare minimum parameters
$I->haveUserInDatabase('someUser', 100);
// check for created user
$I->seeUserInDatabase(array('user_login' => 'someUser', 'ID' => 100));
the haveUserInDatabase
method will take care of a lot of default values and will add queries, using Codeception Db
module methods, to insert user meta as well. The full signature for the method is
public function haveUserInDatabase($user_login, $user_id, $role = 'subscriber', Array $userData = []);
while the checking methods is way simpler. While led by immediate needs for a quicker way to write WordPress specific acceptance and functional tests I’m also trying to develop something that will suite my, and maybe someone else’s, needs in the future.
Share
The updated-as-I-work-on-it module is on Packagist and source is on GitHub.