1
-あるとして、姓Powermock - TestCase1</p> <p>を実行するために、私は姓のためにセットされますと、Personクラスを持っている具体的な方法を模擬し、オブジェクトの残りの部分を残す方法
A TestClassを、私たちだけですることしかできません特定のメソッド(getLastName)をモックし、他のすべてのものを残す(他の内部フィールド、関数...そのまま)?あなたが方法(民間含む)個々のモックためにスパイを使用することができます
public class Person {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
import static org.powermock.api.easymock.PowerMock.*;
import static org.easymock.EasyMock.expect;
@RunWith(PowerMockRunner.class)
@PrepareForTest ({Person.class})
public class TestClass {
@Test
public void TestCase1() {
Person person = createNiceMock(Person.class);
person.setFirstName = "First name";
expect(person.getLastName()).andReturn("Fixed value").anyTimes();
replayAll();
String ln = person.getLastName(); //will return "Fixed value";
String fn = person.getFirstName();
// Currently it returns null because of createNiceMock
// but I want it to return "First name" (value has been set to mock object)
// Is it possible?
verifyAll();
}
}
を、スパイは、このために最適なソリューションです。しかし、スパイは特定の理由で控えめに使用する必要があります。詳細はこちらスパイ/部分的な嘲笑の落とし穴については、http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html#16を参照してください。 – Bala