{"id":787,"date":"2018-01-09T23:58:20","date_gmt":"2018-01-09T23:58:20","guid":{"rendered":"https:\/\/www.remotedevelopment.co.uk\/cms\/?p=787"},"modified":"2018-01-10T00:58:51","modified_gmt":"2018-01-10T00:58:51","slug":"bdd-framework-for-wordpress","status":"publish","type":"post","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/bdd-framework-for-wordpress\/","title":{"rendered":"BDD Framework for WordPress"},"content":{"rendered":"<p>An end-to-end test detects issues whenever there is a major system change.  In software development, with every release, a battery of unit tests must pass or business can be lost.<\/p>\n<p>Yes, software testing is difficult. It sounds like it is reactive but it is preventative. <\/p>\n<p>Do you have a defined end-to-end test path you can implement in a code replay &#8211; a commercial one is Selenium &#8211; you can make it record your \u201chappy path\u201d from home-page to shop order to basket acceptance to payment page, do you have certainty that the new plugin you are testing will not break something you rely on?<\/p>\n<p>The reason for code isolation is to prevent this, but WordPress operates in a global namespace &#8211; know that the basics are not broken by a plugin update.  If it is a server-side script, it can for instance test certain URLs work (return 200 OK instead of 404 or more to the point when it returns a 500 or a 502 HTTP error in a plugin function you may not know something is failing). <\/p>\n<p>With a &#8220;headless-browser\u201d on the server, we can automatically test it is working.  It could simply be an app that tests URLs that you can visit, or paths you can get 200 OK responses for &#8211; rather than a WordPress plugin that has overhead on every request.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An end-to-end test detects issues whenever there is a major system change. In software development, with every release, a battery of unit tests must pass or business can be lost. Yes, software testing is difficult. It sounds like it is reactive but it is preventative. Do you have a defined end-to-end test path you can &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.remotedevelopment.co.uk\/cms\/bdd-framework-for-wordpress\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;BDD Framework for WordPress&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[14],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8yghz-cH","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":758,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/action-speak\/","url_meta":{"origin":787,"position":0},"title":"Action Speak","author":"Nicholas","date":"October 27, 2017","format":false,"excerpt":"\"Next, we are going to add the ability of the user to ...\" promises the website. What do you think? Is the promise of something new necessary? Or a developer raves, \"the next version will increase sales with this very smart new widget\". Can you use something promised before it\u2026","rel":"","context":"In &quot;Article&quot;","block_context":{"text":"Article","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/article\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":664,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/event-software\/","url_meta":{"origin":787,"position":1},"title":"Event software","author":"Nicholas","date":"September 27, 2017","format":false,"excerpt":"CMS Users Wordpress has a number of plugins for managing events, some of this are not the same as the others! \u00a0 fooevents - extensive ticket printing and calendar based woo-commerce plugin cost and budget for implementation \u00a3250 - \u00a3750 \u00a0 Wordpress Event Booking Manager Free, with Pro upgrade -\u2026","rel":"","context":"In &quot;Client&quot;","block_context":{"text":"Client","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/client\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":880,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/why-laravel\/","url_meta":{"origin":787,"position":2},"title":"Why Laravel?","author":"Nicholas","date":"January 26, 2018","format":false,"excerpt":"Fourteen years ago I used a remarkable programming tool that implemented many of Unix's tools like awk, sed and regular expression parsers in a language called Perl.\u00a0 It also implemented objects but suffered from a philosophy TIMTOWTDI - \"There is more than one way to do it.\" In other words,\u2026","rel":"","context":"In &quot;Article&quot;","block_context":{"text":"Article","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/article\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":489,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/software-construction\/","url_meta":{"origin":787,"position":3},"title":"Software Construction","author":"Nicholas Alexander","date":"August 27, 2017","format":false,"excerpt":"Why not build the front end using Wordpress with Angular. And build the backend with Laravel and VueJS. Or, the other way around? What do this even mean? What do people mean by Back-end and Front-end in software development? It can be M vs VC or it can mean a\u2026","rel":"","context":"In &quot;technical&quot;","block_context":{"text":"technical","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/technical\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":765,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/advantages-for-clients-and-agencies\/","url_meta":{"origin":787,"position":4},"title":"Advantages for Clients and Agencies","author":"Nicholas","date":"November 1, 2017","format":false,"excerpt":"There is great future for Remote Development. We understand there must be advantages for clients: less cost, more work, more accountability, less investment. More time. Less expense. Agencies can get in on the ground floor of what is obviously the future. We can defeat the evils of a lack of\u2026","rel":"","context":"In &quot;Article&quot;","block_context":{"text":"Article","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/article\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":753,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/post-to-linked-in-25-october-2017\/","url_meta":{"origin":787,"position":5},"title":"Post to Linked In 25 October 2017","author":"Nicholas","date":"October 25, 2017","format":false,"excerpt":"RemoteDevelopment.co.uk has launched its first ecommerce site co-production - a project for an artist who makes unique works for children - art4kids.gallery - see https:\/\/www.remotedevelopment.co.uk\/cms\/first-clients\/ - implemented in Wordpress with Woocommerce\/Stripe hosted on an Nginx Cloud server. Just in time for unusual Xmas gift ideas, I was told. Remote Development\u2026","rel":"","context":"In &quot;Admin&quot;","block_context":{"text":"Admin","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/admin\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/posts\/787"}],"collection":[{"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/comments?post=787"}],"version-history":[{"count":4,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/posts\/787\/revisions"}],"predecessor-version":[{"id":856,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/posts\/787\/revisions\/856"}],"wp:attachment":[{"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/media?parent=787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/categories?post=787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/tags?post=787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}