How to write data driven tests using JUnit 3 - junit3

I want to create test cases at runtime. The testcases will be created from some excel file and depending upon the values in excel. I know we have #Parametrized in JUnit4 but I cannot use JUnit4. Please suggest.
Thanks

The "parameterized test case" was invented before JUnit 3.8. Here's an example. JUnit 4 added first class support to it so you don't need to override suite() anymore. I used the JUnit 3.8 method for a number of years before JUnit 4 existed. It works just fine.

Related

How to pass set of Systemproperties only to one particular testcase instead of all in gradle test

I have set of Junit test suites. All are working fine in eclipse.
In the test suites one test suite we will pass some System properties.
But those modified system properties should not propagate to other test suites So i just put those only in setup method like below,
#BeforeClass
public static void setUp() {
System.setProperty("public", "publicfolder");
System.setProperty("private", "privatefolder");
}
But this is working fine in eclipse only. While running it outside all other test suites are working fine except the above one.
I know to pass system properties in gradle in build file. but how could i pass those system properties to only one test suite instead of all thats my question here.
You could add another Test task so there's two in total. Each could have a different filter to run separate test suites and each could pass different system properties.
See here for a similar solution

Don't execute certain code while running a JUnit Test in Eclipse

I'm using Eclipse and JUnit 4 while developing an application within a tomcat container. The container manages the connection to our Oracle database.
While testing with JUnit i've got the following problem: In the constructor of the test subject there is something like this:
public Subject() {
// stuff
FancySingleton.getInstance().getFancy("stuff");
}
Unfortunately the method getFancy() tries to execute a Query which it can't because JUnit does not run within the tomcat container and ends up in an endless loop.
My first idea was to out-commend the code. At second thought it appeared to be a bad idea. I could forget to remove the comments before committing.
My second idea was to highlight the code for eclipse so that it doesn't execute it while running a JUnit test. But it requires eclipse to support such a method.
At last i thought of something like preprocessor directives.
What is your idea? Just passing in a boolean to the constructor is imho not a clean way of dealing with such a circumstance.
You'd either mock FancySingleton, or you'd do it right and inject an implementation.

Issue with GHUnit Testing for iPhone

I am working on Unit Test using third party framework GHUnit, created project added GHUnit framework and other framework which are needed.
I created one class called TestCases, in that import library GHUnit and class which need to write test case.
I need to write test cases for 40 classes.
Do i need to write all test cases in one single class.
Do i need to create each class for testCase?
If Yes then when i try to create new class in separate testCase1,testCase2....testCase40 it can't able to show those testCases1 testCase2 ...testCase40
IT shows me a tableview and run button and only first testCases methods, its not showing me remaining testCases Class method.
Please advice in this situation. What action i need to do for this
#Advance thanks you all.,
Separate unit testing (functionality testing) integration testing (complete system working testing)
UNIT TESTING: (for each of those 40 classes)
Usually write different test class for each of the class, so that if there is a single change in any of the class can test it by specifically running that particular class, so if there is one or 40 or 100s of class better write unit test for each of them and ensure there functionality.
In each class better write different test cases for testing different functionality, so that it will be easy to identity (for a third person, not the one who develop it and written test case for that) where the error come from, and manage them.
Each function better test only one case, write different test cases for testing different functional behavior of each functions. So it may result with 100 test cases in a single class for testing a class with 10 functions. But it is good.
INTEGRATION TESTING: (for testing depended functionality of 40 classes)
When come to integration testing, write test cases for different behavior of complete system, in a single class with different possibilities (test cases).
And finally “Spend more time for testing than coding”.
Also ensure the coverage of test cases for the code is between 90% to 100%.

JUnit Fork-Mode in Java Classes

There's support for forkMode in Ant and Maven and occasionally we use it with value perTest. However, the JUnit-tests in Eclipse still fail when we run the tests on a class or on a project (Run As -> JUnit Test). Obviously JUnit uses default settings or behaviour and executes the tests in parallel causing some red crosses in the JUnit-view.
Is there a way to code something into the test-class that lets JUnit behave like the forkMode setting? We don't mind if there's an Eclipse-only solution for this.
Or can this be done with a Run Configuration in Eclipse?
EDIT:
I understand that the problems are based on data remaining after tests and further tests will fail due to that. While this makes sense, please understand that this doesn't answer my question. Think of my situation as being part of some sort of a Tiger Team. We have a bunch of issues and fixing that part of existing tests is just one of them. Trust me, we will try to cover everything... (I haven't heard that in a while)
Eclipse runs the JUnit test serially, in a single thread, in the same JVM. If you have tests that normally operate in parallel, this should not affect the test behavior. However, if you assume that you can change settings in the VM, like system properties, or class static variables, and the next test will not have those changes, that will break your tests.
The rule of thumb is that each test should leave the system (vm, database, filesystem) exactly as it found it so that each test can be run at any time, in any order.

nCover With many class libraries

So I have my project and it is set up like this:
MyProject
MyProject.Module1
MyProject.Module1.Tests
MyProject.Module2
MyProject.Module2.Tests
What I want is the code coverage number for the entire project.
I am using nCover... what is the best way to do this? For example would I have to rearrange the project and have everything put into MyProject.Tests?
It depends on how you're testing. Most test frameworks will let you run tests for multiple assemblies as separate arguments. If you can't run them all together, you can always use NCover's merge feature. Check out http://docs.ncover.com/ref/2-0/ncoverexplorer-console/merging-coverage-data/.