Let's start with an example. We have a Conversion class to convert temperature from Fahrenheit to Celcius.
Following is the Java code :
class Fahrenheit {
float f=0;
public Fahrenheit(float f)
{
this.f=f;
}
public float getFahrenheit()
{
return f;
}
public void setFahrenheit(float f)
{
this.f=f;
}
}
class Celcius {
float celcius=0;
public Celcius(Float c)
{
System.out.println("Celcius="+c);
celcius=c;
}
public Float getCelcius()
{
return celcius;
}
public void setCelcius(Float c)
{
System.out.println("Celcius="+c);
celcius=c;
}
}
public class Convert {
private float convertToFahrenheit(Celcius c)
{
return (float) ((c.getCelcius()*1.8)+32);
}
private float converToCelcius(Fahrenheit f)
{
return ((f.getFahrenheit()-32)*5/9);
}
public float convert(Fahrenheit f, Celcius c)
{
if(f!=null)
return converToCelcius(f);
else
return convertToFahrenheit(c);
}
}
1.Create Mock Objects
Object obj=mock(SomeclassName.class)
2. Setup return values on this object
when(obj.somemethod(param)).thenReturn(100);
3. Call a method under test
obj.aMethod()
4. Verify if a particular method is called and returns a certain value
verify(obj).bMethod(abc,anyObject());
For our example above, the test code looks like below
@Test
public void test() {
Convert conversion = mock(Convert.class);
Celcius celcius=mock(Celcius.class);
Fahrenheit fahrenheit=mock(Fahrenheit.class);
when(celcius.getCelcius()).thenReturn((float) 20.0);
float val=conversion.convert(fahrenheit,celcius);
verify(conversion).convertToFahrenheit(celcius);
}
No comments:
Post a Comment