I need to write end to end tests for a web api which test various scenarios. However the models logic is pretty tough, if the tests for a case/model takes like 100 code rows, the setup in the background most likely takes 300 - 500 of those, lots of initialization, passing of automatically generated valuesm etc.
In general I tend to have data generated via the models, against which I test in my cases, but this time I'm more inclined in using database scripts to populate the database directly according to my needs, or to just restore a 'predefined' state. What would be all the disadvantages of this approach? The software being tested here is somewhat mission critical.