This is a long, possibly passionate (see trollish) discussion to have. My intentions were mostly:

- to help us reducing the amount of tests to write and maintain
- to strengthen our codebase, ensuring the expected objects are passed to constructors, and therefore reducing the amount of possible code

Here the amount of code to write for defining a View and related tests is actually reduced by quite a bunch, while securing the former by some grades.

The only area where I can see this being painful for some is when writing tests, because once dependencies are declared you obviously have to inject the expected dependency types; though you can always redefine the `dependencies` property from the prototype, and/or stub them as we currently do with native browser objects in our test. See the diff for some examples.