私はクラスオブジェクトを作成するjsonオブジェクトを読み込んでいますので、クラスオブジェクトを嘲笑しています。私の方法は次のとおりです。特定のクラスオブジェクトの模擬テストに失敗しましたmockito
public List<Person> readFile(String filename) {
List<Person> list = new ArrayList<Person>();
JSONParser parser = new JSONParser();
int count = 0;
try {
Object obj = parser.parse(new FileReader(
filename));
JSONObject jsonObject = (JSONObject) obj;
JSONArray array = (JSONArray) jsonObject.get("people");
//System.out.println("Debug: " + array.size());
if(array != null) {
while (count < array.size()) {
Person person = new Person();
JSONObject people = (JSONObject) array.get(count);
person.setName((String) people.get("name"));
Long age = (Long) people.get("age");
person.setAge(Integer.valueOf(age.intValue()));
person.setSex((String) people.get("sex"));
person.setIllness((String) people.get("illness"));
list.add(person);
count++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
これはファイル名をとり、リスト(この場合は特定のファイルオブジェクトリスト)を返します。これまでの私のテストはこれです:
package pricing;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
import com.pricing.DiscountPricing;
import com.pricing.model.Person;
@SuppressWarnings("deprecation")
public class DiscountPricingTest {
private static DiscountPricing mockDPclass;
private static Person mockPerson1;
private static Person mockPerson2;
private static Person mockPerson3;
@BeforeClass
public static void setUp() {
mockDPclass = mock(DiscountPricing.class);
mockPerson1 = new Person(50, "Allergies", "Kelly", "female");
mockPerson2 = new Person(40, "Sleep Apnea", "Josh", "male");
mockPerson3 = new Person(20, "Heart Disease", "Brad", "male");
}
@Test
public void readFileTest() {
String filename = "Consumers.json";
DiscountPricing dpclass = new DiscountPricing();
List<Person> allPeople = dpclass.readFile(filename);
List<Person> mockPeople = new ArrayList<Person>();
mockPeople.add(mockPerson1);
mockPeople.add(mockPerson2);
mockPeople.add(mockPerson3);
assertEquals(mockPeople.size(), allPeople.size());
assertTrue(allPeople.get(0).getName().equals("Kelly"));
}
}
私のモッキングの使用はMockitoで正しいのですか?