I find it makes the tests less readable by mixing setup, actions and assertions in one big dict. Also, in order to understand what's actually happening I need to read `check_state()` and the test and construct the flow of execution in my head. Doing all those things separately is a little more verbose (not all that much, really), but makes it possible to read and understand each test on its own.