> Tests should not depend on implementation details. Since preload is true by default, there is no need to specify it in tests again.

Let me rephrase this. The goal is to have the test code flexible, so that when a minor detail in the implementation changes (e.g. `noPreload` is renamed to `preload`), most of the test code does not need to be changed. This way it's much easier to do refactorings and code clean-ups, as you don't have to fix a bunch of unit-tests after every change.