Blog coding and discussion of coding about JavaScript, PHP, CGI, general web building etc.

Tuesday, April 26, 2016

How to pre-define the running sequences of junit test casesďźŸ

How to pre-define the running sequences of junit test cases?


I have a test class in java and there are several methods annotated by @Test in it, somehow, i want to Junit run method A before method B when i run the whole tests. Is it possible or necessary?

Answer by Edward Z. Yang for How to pre-define the running sequences of junit test cases?


This sort of dependency on test methods is bad design and should be avoided. If there is initialization code in one test method that needs to be done for the next, it should be factored out into a setUp method.

Answer by Jeremy for How to pre-define the running sequences of junit test cases?


If it's only two methods then you'd need to wrap it in a single unit test that truly isn't order-dependent.

@Test  public void testInOrder() throws Exception {      testA();       testB();   }  

Answer by Nilesh for How to pre-define the running sequences of junit test cases?


Check out this Stack Overflow discussion for some best practices..

Answer by Sir Geek for How to pre-define the running sequences of junit test cases?


The problem I have with this is reporting. If you WANT/NEED to see if each test method fails or passes then you're SCREWED.

I understand that you don't want one test to build upon previous tests, But regardless of that, there may be situations that you need it to do this (or you'll increase the complexity of the test by an order of magnitude).

Should the flow of tests in the code be up to the developer of the tests or the developer of the framework ?

Show JUnit test code to 10 java developers, and I'll be willing to bet most will assume that the tests (regardless of anything external) will be run in the order they appear in the test class.

Shouldn't THAT be the default behaviour of JUnit ? (Give me the option of telling it the order instead of JUnit figuring it out" on its own.)

Update: 2014-11-18 The newer version of JUnit supports method sorters

// This saves the tests in alphabetical order @FixMethodOrder(MethodSorters.NAME_ASCENDING)

I would think that you might be able to create your own method sorter if you "really" wanted do do your own specific order.

Answer by kornero for How to pre-define the running sequences of junit test cases?


Tests should have independent order, but some times we have not what we want. If you have a large legacy project with thousands of tests, and they depends on their execution order, you will have many problems, when, for example you will try to migrate on java 7, because it will shuffle all tests.

You can read more about this problem here:

junit test ordering and java 7

Answer by Andy B for How to pre-define the running sequences of junit test cases?


use the following to setup thing before and after tests

@Before  public void setUp() throws MWException {    }    @After  public void tearDown() {    }  

Answer by shlomi33 for How to pre-define the running sequences of junit test cases?


A little late but this might be a good solution for you: https://github.com/aafuks/aaf-junit


Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72

0 comments:

Post a Comment

Popular Posts

Powered by Blogger.