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
<?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));
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.