我正在使用开源库测试facebookapi功能https://code.google.com/archive/p/facebook-test-java-api/
现在我要做的是更改我的测试用户名。我深入研究了这个库的代码,发现了以下内容:
public interface FacebookTestUserAccount
{
// irrelevant methods
/**
* Gives access to change settings for the test user.
* @return An {@code AccountSettingsChanger} responsible for updating the account settings.
*/
AccountSettingsChanger changeAccountSettings();
// irrelevant methods
}
现在我的测试是这样的:
@Test
public void updateNameOfTestUser(){
List<FacebookTestUserAccount> allTestUsers = store.getAllTestUsers();
FacebookTestUserAccount facebookTestUserAccount = allTestUsers.get(0);
facebookTestUserAccount.// here after dot I cant see method changeAccountSettings()
}
由于我的refence方法是接口的类型,并且该方法是在接口中定义的,所以我很难解决的问题是:
为什么我在测试类中看不到该方法
这是getALL((的代码;
public List<FacebookTestUserAccount> getAllTestUsers() {
init();
String jsonResponse = get("/%s/accounts/test-users", applicationId);
JSONObject accounts = parseJsonObject(jsonResponse);
LinkedList<FacebookTestUserAccount> result = new LinkedList<FacebookTestUserAccount>();
JSONArray jsonArray = (JSONArray) accounts.get("data");
for (Object element : jsonArray) {
JSONObject jsonUser = (JSONObject) element;
result.add(buildFacebookAccount(jsonUser));
}
log.debug("* Found [{}] accounts on Facebook ", result.size());
return result;
}
我能想到你的问题的两个可能原因:
-
您的IDE无法加载自动完成建议。要检查这一点,只需在句点后写入
changeAccountSettings()
,然后尝试编译。(我怀疑这是你的问题,因为你的问题措辞像"为什么我看不到这个…?"( -
您的代码库中有两个不同的
FacebookTestUserAccount
,并且您导入了错误的一个。