1

I want to automate test cases on web browsers and I love the concept of Python's Salad (mix of Lettuce (BDD) and Splinter (browser automation)).

But I've heard that Salad might not be the most stable, and that the Ruby community is more advanced on Behaviour-Driven Development.

How is Ruby's Cucumber different from Python's Lettuce?

  • Just personal opinion but I strongly prefer Python over Ruby. Ruby feels still close to it's Perl roots ("there is more than one way to do it"). Python learned from Perl. Python is the only language I know with strong preference for readability for programmer, and community which is able to discard personal preferences and coalesce about few core tools and improve them. ("There should be one obvious way to do it right"). I think that Ruby is preferred by Java programmers who did not get burned by Perl yet. – Peter M. - stands for Monica May 5 '16 at 15:41
  • Summary: I find Python more readable and less quirky (less magic and surprises). One reason is that Python enforces style by enforcing significant whitespace, so it is easier to read code of other developers, and as a result code (and development effort) is easier to share, so it is easier to coalesce efforts. And community strongly prefers NOT reinventing the wheel. But it is personal style preference, nothing hard. – Peter M. - stands for Monica May 5 '16 at 15:47
  • Capybara, so Ruby. – Nakilon May 6 '16 at 13:27
1

I'll make the case for Ruby as I'm most familiar with it. Others can vote up/down

Ruby is great because you have rspec and capybara which are widely and heavily used. There is a huge community of fellow users.

The main issues I encounter today are are about javascript and ajax calls. WebDriver doesn't have 100% answers for some of the issues. I don't know if Python would make any difference as the problems are more about how browsers process javascript and communicate regardless of programming language used to write tests.

Not the answer you're looking for? Browse other questions tagged or ask your own question.