我有一個受保護的方法,如下所示。它使用來自Constants.java文件的最終靜態變量。通過更改最終靜態變量來測試方法
class A {
protected Configuration connectConfig() {
ConfigDescriptor desc = new ConfigDescriptor.Builder()
.project(Constants.REMOTE_CONFIG_PROJECT_NAME)
.name(Constants.REMOTE_CONFIG_PROJECT_CONFIG_NAME)
.version(Constants.REMOTE_CONFIG_PROJECT_VERSION)
.build();
return ConfigProvider.of(desc, getClass().getClassLoader());
}
public boolean process() {
Configuration config = connectConfig();
if(config == null) {
return false;
}
}
}
現在我想單元測試這種方法process
爲remote config
失敗。
如果我只是測試process()
方法,它將通過Constants.java
具有適當的連接值。爲了測試,我想更改這些值,以便遠程配置returns
null
;
注意:我們不希望使用Mockito
來模擬這些值。
我很困惑...爲什麼你不能暫時改變constants.java中的值? – Austin
@Austin:他將測試作爲CI作業的一部分運行,所以我不想更改實際值。我們也不想用Mockito來嘲諷價值。 – tushR
那麼你不能改變任何代碼嗎? – Austin