I’m automating functional tests using JUnit. And I ran into a problem: if I follow the rule “one (significant) assert per test method” then I end up with a bunch of 6-line test methods per one test case (17 is the biggest number yet). If I put them all into one test method I have to comment out failing asserts or leave half of the test never launched.
I don’t like the first way because it launches browser for too many times, and it appears that browser launch + login/logout are more “expensive” and time consuming than test run itself.
The second way is no better because it introduces a lot of manual work in any case of managing it.
So, my questions are:
1. What are the best practices for such cases?
2. Is there some way to postpone test failure till the end of test? I mean, less important assert, that doesn’t stop test run but causes it to fail in the end nonetheless.
UPD: Yes, I’m using Selenium. And I have a parent class for every test class to unify their settings.
1 Answer