As you already saw the benefits from doing TDD, try looking at BDD ( django-behave <https://github.com/behave/behave-django>). It basically allows you to ensure that all usage scenarios from a feature you described works - it doesn't fully replace TDD.
Em domingo, 4 de março de 2018 12:29:16 UTC-3, Jamesie Pic escreveu: > > Hello everybody, > > This is a message coming from the deepest of my heart. > > When you start applying best development practices such as TDD, you > discover that you make much better software. > > First, you can TDD your python code with anything, django has a test > runner, otherwise you have pytest and many friends. > > Then, you make python to interact with javascript. In the Django > community, it seems that there is a conscensus around “use selenium to test > your JS”. I’ve been like this myself for years, but the thing with selenium > is that it’s functional testing, not unit testing, it does bring short term > ROI, but on the long term it becomes costy to maintain over time. > > And lets face it: have 100% unit test coverage of your code first, then > think of functional testing. If you’re doing functional testing on some JS > code which has 0 unit test: you’re clearly wasting a lot of efforts on the > long run. Selenium is always going to ask for more attention, unit tests > are fast and have low resource requirements which make them perfect to run > on free services such as travis or circle. > > The reality seems to be that most backend developers who are able to > produce quality backend code have hard times creating quality JS code. I > see this all the time: > > - django-dynamic-fields, until the current rewrite > > <https://t.umblr.com/redirect?z=https%3A%2F%2Fgithub.com%2Fyourlabs%2Fdjango-dynamic-fields%2Ftree%2Fnpm%2Fsrc%2Fddf&t=NjJiZGQ0MmRhMzNiYjcyODU4MTNmMWRlNThlNjVkNWZkMDdlODc3MCxpeGJ4N0pFcA%3D%3D&b=t%3ACJr--kHDX3qgbjsMiHH8_w&p=https%3A%2F%2Fblog.yourlabs.org%2Fpost%2F171520206623%2Fdjangonauts-say-no-to-selenium-drug&m=1> > , > - django-autocomplete-light, > - it’s the case for django-material js, > - same for nagare framework js > > And i’m not here to criticize django-material or nagare, i LOVE both, but > let’s be honest: our JS is not up to our Python in terms of quality. > > To be completely honest, i’m writing this for me because I’m guilty as > everyone else, because i’m never falling in the trap again from now on. I > don’t see any excuse to not TDD JS and rely on functional tests instead, > it’s my fault and all I can honestly do about it is become a proper JS > developer, and apply the same design principles which help me make better > Python code. > > Django itself, is even historically affraid of supporting any kind of JS > integration outside their famous admin app. So your Django app out of the > box will be usable as something from the Web 1.0 era. And really, I LOVE > Django, but I’m also honest about it. > > This is my invitation to break the pattern: say no to selenium code. > Please TDD your JS code and release it as an NPM module, nowadays JS has > all the ecosystem like Python with package managers, unit testing libraries > - sometimes even better than Python. > > And please, do go ahead and dump Python objects into JSON to pilot your JS > code, it’s easy to unit test on both sides, instead of wasting your time > with selenium. > > With LOVE > > https://blog.yourlabs.org/post/171520206623/djangonauts-say-no-to-selenium-drug > > -- > ∞ > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a3af8a22-4a1c-4600-bf96-493a13595077%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

