Whitebox
provides following methods to set the value to a field.
public
static void setInternalState(Object object, String fieldName, Object value)
public
static void setInternalState(Object object, String fieldName, Object[] value)
public
static void setInternalState(Object object, Object value, Object...
additionalValues)
public
static void setInternalState(Object object, Object value, Class<?> where)
public
static void setInternalState(Object object, String fieldName, Object value,
Class<?> where)
public
static void setInternalState(Object object, Class<?> fieldType, Object
value)
public
static void setInternalState(Object object, Class<?> fieldType, Object
value, Class<?> where)
Following
snippet define the properties of the object 'Employee'.
Employee emp = new
Employee();
Whitebox.setInternalState(emp,
"id", 1234);
Whitebox.setInternalState(emp,
"firstName", "Hari Krishna");
Whitebox.setInternalState(emp,
"lastName", "Gurram");
Find
the following working application.
Employee.java
package com.sample.model; public class Employee { private int id; private String firstName; private String lastName; public Employee() { } public int getId() { return id; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } }
EmployeeTest.java
package com.sample.model; import static org.junit.Assert.assertEquals; import java.lang.reflect.InvocationTargetException; import org.junit.Test; import org.powermock.reflect.Whitebox; public class EmployeeTest { @Test public void Employee_DefaultConstructor() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { Employee emp = new Employee(); Whitebox.setInternalState(emp, "id", 1234); Whitebox.setInternalState(emp, "firstName", "Hari Krishna"); Whitebox.setInternalState(emp, "lastName", "Gurram"); assertproperties(emp, 1234, "Hari Krishna", "Gurram"); } private void assertproperties(Employee emp, int id, String firstName, String lastName) { assertEquals(emp.getId(), id); assertEquals(emp.getFirstName(), firstName); assertEquals(emp.getLastName(), lastName); } }
No comments:
Post a Comment