What is common and different between Behavior Driven Development [BDD] & integration testing?

General Chicken answers a question from Quora.

General Chicken answers a question from Quora.

Read John Dee's answer to What is common and different between Behavior Driven Development [BDD] & integration testing? on Quora

Behavior Driven Development from the Business Stakeholder’s Point of View

BDD is the best way to communicate business requirements from stakeholders to developers. General Chicken explains what BDD is from a business POV.

WordPress plugin: Randomize Main Loop Order

This is a plugin I made in response to a Quora post.

I made a plugin for this, in response to this Quora question.

Randomize Main Loop Order

Plugin on Github: JohnDeeBDD/WP-Random-Order-Main-Loop

Just download the .zip from github, then upload it to your site. Let me know if there are any issues.

Read John Dee's answer to Is there a WordPress plugin that will re-arrange my website posts constantly? on Quora

Code on github.com
Code on github.com

Business Stakeholders: How to Describe a Software FEATURE

A feature from the biz perspective

What is a feature?
A feature is an aspect of software that is useful. Anything you can express, that is possible, and that you can afford, can be a feature. A bug is an aspect of software that isn’t useful.

Since we’re talking about development, we’re discussing software features that don’t exist yet. These are features that we would like to build, or existing features that we would like to make better. Describe a feature with should statements:

  • It should email all the clients once a month.
  • The client should have a setting page in the admin area.
  • The plugin should have a custom post type called GPS coordinates for each subscriber.
  • The div should show a timeline of Civil War battles in the footer area.

The next statement you should create is the reason for the feature you are requesting. What is the business value of this feature? Describe the reason by using a “Because”, or “So that”  or “In or that”

  • So that the clients are routinely updated.
  • In order that the user can change the settings.
  • Because we need to store the GPS data.

Alternatively, you can use Gherkin syntax for feature development.

Vanishing Checkbox in WordPress Comment Form

This is the tale of the incredible vanishing checkbox, on WordPress versions 4.9.6 and 4.9.8.

WordPress uses cookies by default to log in users and track who is making a comment. Cookies are small snippets of data kept on a user’s browser. WordPress is trying to deal with the new GDPR regulations. It seems from following Trac, that it’s a giant cluster fuck.

This annoying checkbox was forced onto every WordPress site in the world as of 4.9.6:

As soon as I saw this monster I started making a plugin to roll it back. It was obvious to me that most sites wouldn’t want this, and that it served absolutely no purpose. It comes from a misunderstanding of the law, and a desire to be clever.





There is no requirement in GDPR for websites to display a check box for cookie use. None, totally false.

Then comes out 4.9.8 which removed the check-box that was just installed!

However! This revert also breaks functionality. Users who aren’t logged in have no way now of knowing that their comment was submitted.

So the situation as of 4.9.8 is that the comment cookie check box came and went, and now everybody’s site is broken.

You can solve the problem by re-activating the comment check box in the admin SETTINGS >> DISCUSSION, but then you’ll still have the checkbox. Or use this plugin to restore functionality to the way it was.

Remove GDPR

How to find the best possible WordPress plugins

How to find the best WordPress plugins

Post this template as a guaranteed contest on upwork.com or freelancer.com for $40.

******** Recommend and install a WordPress plugin *********

I want to install a WordPress plugin, but I’m not sure exactly which one I should use.

Give me a very brief overview of what WordPress plugin(s) I should use, how much it will cost me (if anything), and what functionality it has. I’m not looking for a comprehensive overview of WordPress plugins, I’m looking for a specific plugin and someone who can execute installing it. You don’t need to submit credentials or previous projects, just know how to use the plugin you recommend and be able to install and set up the functionality.

Submit a simple text entry describing what plugin I should use, and you’re contact information. I will provide you with access. This is a guaranteed contest.

Functionality I need:

Running Codeception tests on multiple WordPress environments

Using the –env flag in Codeception. Running tests against multiple versions of WordPress.

Suppose you want to run your test suite against multiple environments? Perhaps with different browsers or with different versions of WordPress or PHP? Codeception makes this easy with the –env flag.

This is a plugin I made that rolls back a new feature added to WordPress 4.9. I want to run an acceptance test against the latest version of WordPress, and also against a legacy version of WordPress.

Setup multiple environments

I use an Ubuntu laptop with apache2. Your mileage will vary. When I develop a website, say site.com, I setup my laptop to redirect site.dev to a local directory on my laptop. There I keep a copy of the production site to work on.

Directions to setup multiple hosts from Rackspace.com

On my machine, I setup two distinct WordPress installs, one at http://localhost and the other at http://wp.dev. One running version 4.9 and the other running version 3.9.

WordPress v 3.9.23
WordPress v 3.9.23

WordPress v 4.9
WordPress v 4.9

In this example, I’ll be running an acceptance test against both versions of WordPress. I’ll need to setup the YML file like this:

I use this command:
bin/codecept run acceptance -vvv --html --env remotehost --env localhost

bin/codecept is the executable [might be wpcept or codecept]
acceptance is the suite
remotehost and localhost are the envs
-vvv very very verbose [one dash]
–html report to html [two dashes]

Codeception runs:

Passing Tests!
Passing Tests!