This article proposes an approach to handling the fine-grained parts of the database parts of an automated system test of something like a website. You would need other things for the remaining jobs: To orchestrate the test, something like SpecFlow; To interact with the website, something like Selenium; To do the bulk updates to the … Continue reading Automated testing of a website: Dealing with the database
Category: SpecFlow
SpecFlow: To defer or not to defer
Introduction In a previous post on how to allow Gherkin authors flexibility to write the lines of a scenario in whatever order made sense to them, I suggested deferring things as a mechanism for making this happen. The costs of doing this have become more apparent to me since I wrote that, so I think … Continue reading SpecFlow: To defer or not to defer
SpecFlow + Selenium: The engineering behind decent Gherkin files
This article is in a series about Selenium and SpecFlow Introduction Why bother? Basic plumbing Page objects The engineering behind decent Gherkin files UPDATE: please see another article I've written on the costs and benefits of the approach I describe below. Summary If you are writing the implementation of your SpecFlow + Selenium tests, you … Continue reading SpecFlow + Selenium: The engineering behind decent Gherkin files
Making SpecFlow + Selenium testing easier with Page Objects
This article is in a series about Selenium and SpecFlow Introduction Why bother? Basic plumbing Page objects The engineering behind decent Gherkin files Introduction Page Objects are things that shield the rest of your test from the details of the website under test. At one end they understand all the text boxes, selects, ids, CSS … Continue reading Making SpecFlow + Selenium testing easier with Page Objects
SpecFlow + Selenium: Basic plumbing
This article is in a series about Selenium and SpecFlow Introduction Why bother? Basic plumbing Page objects The engineering behind decent Gherkin files This series contains an article about how to store and use information when executing a test in a way that lets you write nice Gherkin. That is a bit more of an … Continue reading SpecFlow + Selenium: Basic plumbing
Why bother testing your website with Selenium and SpecFlow?
This article is in a series about Selenium and SpecFlow Introduction Why bother? Basic plumbing Page objects The engineering behind decent Gherkin files This is not a general Why bother with testing? post, but instead gives some specific business benefits of testing your site with something like the combination of Selenium and SpecFlow. You will … Continue reading Why bother testing your website with Selenium and SpecFlow?
Introduction to testing your website with Selenium and SpecFlow
This article is in a short series about testing your website with Selenium and SpecFlow: Introduction Why bother? Basic plumbing Page objects The engineering behind decent Gherkin files The combination of Selenium and SpecFlow lets you do two useful things: Test your website in the way that a user would Base these tests on acceptance … Continue reading Introduction to testing your website with Selenium and SpecFlow
Testing a Web API
If you write a Web API (I’m using this to mean any API that you call via HTTP, such as a REST API using the Microsoft Web API framework), the world it’s part of is: It’s likely that while you’re developing, Client machine = Web server machine = Database machine, but this might not be … Continue reading Testing a Web API
Taming Combinatorial Explosions in SpecFlow
The Problem Imagine you are using SpecFlow to test a REST API. In the common REST way, the URL is built up of 1+ units, where each unit is one of these: Give me a list of X; Give me the instance of X that has id Y. You could easily have up to 3 … Continue reading Taming Combinatorial Explosions in SpecFlow
Gluing together the bits of your SpecFlow test
In my previous post on SpecFlow, I showed how a single test case (Scenario in SpecFlow-speak) maps to many different bits of C# that will actually implement it. One scenario will often map to 3 different bits - for the Given, When and Then respectively - but if you use And to extend any of … Continue reading Gluing together the bits of your SpecFlow test