I got an answer from the creator of the product:
So the concern you have is "change->test->fail->revert" and this happens, but with smaller and more careful changes you should be able to make good progress, and failing shouldn't be rule, but an exception. Also, remember that in legacy the motto is better, not good. use this test until you refactor enough to get a test that doesn't require an appserver. then you move faster. approvaltests in and of themselves do not need to be big or slow, it is only verification. it's the doing of the test that is big or slow, and while approvaltests work great for that, it by no means a suggestion or recommendation that those are the kinds of tests you want.
Then I asked:
Are you saying, "approvaltests lets you test this way, but that's not a good way to use approvaltests"? If I've interpreted that correctly, what would be a better approach?
And he replied:
yes. approvaltests let you test this way. it's not a good way to unit test. it is most likely the best way to unit test you currently have. use it until you refactor to a better way to unit test (one that doesn't require a server)
Hope this helps someone else with the same question.