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