Re: How to test a method which has void return type and no argument?
mohit.khatri28@gmail.com wrote:
On Apr 18, 4:02 pm, "Ingo R. Homann" <ihomann_s...@web.de> wrote:
Hi,
mohit.khatr...@gmail.com wrote:
Hi All,
I am using JUnit for testing java application under Eclipse IDE. I
have a method which has void return type and no arguments i.e.
void xyz()
{
..............
}
Could anybody suggest me how do i test this type of method using
JUnit.
well, of course you can only test this kind of method, if it does
something that can be "seen" by the Program. e.g.:
void test() {
MyObject o=new MyObject();
assertEquals(o.getFoo(),"foo");
o.setFooToBar();
assertEquals(o.getFoo(),"bar");
}
If the method does *nothing* at all, it cannot be tested.
Of course, it may be possible that it is a bit more difficult than shown
above, to "read" the result. But that depends on your use-case.
Ciao,
Ingo
Hi,
Thanks for your reply. I am facing still a problem. Suppose if i
have a method i.e.
class Menu_Bar
{
JMenuBar menubar = new JMenuBar();
JMenuItem File;
JFrame frame = new JFrame();
public Menu_Bar()
{
this.CreateMenu();
...
frame.setJMenuBar(menubar);
}
void CreateMenu()
{
JMenu menuFile = new JMenu("File");
......
}
}
Now could you suggest me how do i test this method i.e. CreateMenu()
which has some local components.
The first thing I would do is to add Javadoc comments or equivalent to
CreateMenu(). The really serious problem with unit testing it is that
the program contains no statements about its preconditions and
postconditions.
You then have to ensure two things, that CreateMenu's unit test has the
power to make the preconditions true, and has access to enough data to
check the postconditions. For example, if there are postconditions
related to menubar you will need a getMenuBar method returning its
current value.
The form of the unit test is:
Make the method's preconditions true.
Call the method.
Get the values of variables involved in its postconditions.
Test the postcondition assertions.
Patricia