【发布时间】:2015-12-21 16:02:54
【问题描述】:
我有一个 AbstractDao 类,我在其中实例化 Rest Fore API。我无法在 Power Mock 中模拟新的 forceAPI(config)。请提出建议。
public abstract class AbstractDao {
@Inject
private Configuration configuration;
public ForceApi getForceAPI() {
ApiConfig config = new ApiConfig();
config.setClientId("test");
config.setClientSecret("test");
config.setUsername("test");
config.setPassword("test");
config.setLoginEndpoint("test");
return new ForceApi(config);
}
}
我正在尝试以这种方式进行操作,但它不起作用。 我的 DAO 类正在扩展抽象 DAO 类
@RunWith(BlockJUnit4ClassRunner.class)
public class SalesForceDaoImplTest {
@InjectMocks
private SalesForceDaoImpl salesForceDao;
@Mock
private ForceApi forceApiMock;
@Mock
private ApiConfig apiConfigMock;
@Mock
private Configuration configMock;
@Mock
JsonObject jsonobject;
@Before
public void setup() {
initMocks(this);
when(configMock.getAppConfiguration()).thenReturn(jsonobject);
when(jsonobject.getString(anyString())).thenReturn("test");
when(salesForceDao.getForceAPI()).thenReturn(forceApiMock);
when(new ApiConfig()).thenReturn(apiConfigMock);
when(new ForceApi(apiConfigMock)).thenReturn(forceApiMock);
}
【问题讨论】:
-
不工作是什么意思?能具体一点吗?
-
你可以看看this question。有一个示例说明如何使用
PowerMockito模拟构造函数