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