On Sun, Sep 30, 2018 at 6:03 PM Steven D'Aprano <st...@pearwood.info> wrote: > > On Sun, Sep 30, 2018 at 02:50:28PM +1000, Chris Angelico wrote: > > > And yet all the examples I've seen have just been poor substitutes for > > unit tests. Can we get some examples that actually do a better job of > > selling contracts? > > In no particular order... > > (1) Distance
Don't doctests deal with this too? With the exact same downsides? > (2) Self-documenting code Ditto > (3) The "Have you performed the *right* tests?" problem Great if your contracts can actually be perfectly defined. Every time a weird case is mentioned, those advocating contracts (mainly Marko) give examples showing "hey, contracts can do that too", and they're just testing specifics. > (4) Inheritance Okay, that one I 100% grant you. > (5) Unit tests and contracts are complementary, not alternatives That I agree with. > (6) Separation of concerns: function algorithm versus error checking Agreed, so long as you can define the contract in a way that isn't just duplicating the function's own body. > (7) You can't unit test loop invariants Sure. > (8) Executable documentation Granted, but there are many forms of that. Contracts are great for some situations, but I'm seeing a lot of cases where they're just plain not, yet advocates still say "use contracts, use contracts". Why? ChrisA _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/