So regarding these functional tests... These `view_test`s are actually just the standard default Rails-land functional tests. It's just that at some point in the past we decided to try and reduce the overall test suite time by only rendering views when we needed to, hence these changes: https://github.com/alphagov/whitehall/commit/833742e1.

There's been a lot of back and forth since then as to the value of these functional tests and to the relative merits of just asserting that instance variables are assigned (which is how I used to write my functional tests), or actually rendering the view and asserting that something you expect to be on the page is there. I was talked round to the idea that the later is better in most cases because just asserting that something has been assigned does not guarantee that anything is actually done with that thing. The template file could be completely empty and the test would still pass, which greatly reduces its value as a regression test. So in effect, these Rails-style functional tests end up being mini-integration tests that verify the page looks how you'd expect without having to have lots of much more expensive cucumber scenarios. As to testing that *all* the correct information is being rendered, you could certainly do that, but it's a case of diminishing returns; as long as the test verifies that the important thing expected to be on the page is there, it provides an adequate level of confidence for it to be effective against regressions IMO.