0

私は次のクラスを持っています

    public class TestClass{
    ParamObject paramObject = null;

    public TestClass(ParamObject paramObject){
        this.paramObject = paramObject;
    }

    public String getQuery(String field){

        String sql = field + "sometext" + getName();
    }

    private String getName(){
        SomeObject obj = new SomeObject();
        return obj.getName();
    }

}

上記のクラスの getName メソッドをモックしたいと思います。コンストラクター引数は、Test クラスで使用できます。これを行うにはどうすればよいですか。

@Test(groups = { "UNIT", "CS_RAJAN" })
public void TestClass_Unit_Test() throws Exception {
    ParamObject paramObject = get();//some param object

    //some way to pass the paramObject to the class and mock the getName() method so that it returns "ABC"

}
4

1 に答える 1

0

解決策を見つけました。testClassではこんな感じです

ParamObject paramObject = get();//Some instance
TestClass t = PowerMock.createPartialMock(
        TestClass.class, "getName", null, paramObject);

String expected = "ABC";

PowerMock.expectPrivate(t, "getName").andReturn(
        expected);
PowerMock.replay(t);
于 2013-07-03T08:06:35.213 に答える