Another thing to consider is the testability of your functions. Tests are making your life easier by detecting problems before you do. There are 3 flavors: unit tests (testing small parts in isolation), integration tests (testing parts against each other) and end to end tests (testing the whole stack). Unit tests are usually rather fast, easily written, and catch obvious errors early. End to end tests tend to get slow and complicated, which is why you should try to do as much of your testing with the other methods.
Another thing to consider is the testability of your functions. Tests are making your life easier by detecting problems before you do. There are 3 flavors: unit tests (testing small parts in isolation), integration tests (testing parts against each other) and end to end tests (testing the whole stack). Unit tests are usually rather fast, easily written, and catch obvious errors early. End to end tests tend to get slow and complicated, which is why you should try to do as much of your testing with the other methods.
Great points