| > I don’t think it’s worth doing that OK; it's your choice to do what you think is right. > and comparing it to scientific experiments doesn’t really apply. Why not? I think it's a fairly apt comparison; you have a theory ("this piece of code does the following things"), and write tests to prove it. > You can do all that without mocks as well. OK, but mocks make it easier and cleaner - so why wouldn't I do that? > Making the tests run faster at the expense of better tests seems counterproductive. Smaller, more focused, cleaner tests are better in my opinion; speed is a beneficial side effect. > Now you should think of reasons why you should not isolate. Why? That's your argument - it's not on me to prove it for you. If you can give me some good reason why mocking out the interfaces you are not testing is a bad idea, and some better alternative, then we can have a discussion about it. |
Your position is reasonable and I do think isolation can be beneficial, but I still wouldn’t use mocking to do it.
>Smaller, more focused, cleaner tests are better in my opinion.
Cleaner is subjective. I can write “small” and “focused” functional tests that are also quick to run.
I am of the opinion that functional tests provide more value. They are testing more of the actual code than an approximation, which in turn gives a better indicator that it works. Functional tests are less likely to change unless the input/output changes.
Now let’s say you mock something in your function. Let’s say you make a change to that but the input and output are the exact same. Now you have to update your test.