junit之安卓。机器人电子。测试 AccountManager 结果
findumars
阅读:194
2024-02-24 18:49:41
评论:0
在我的应用程序中,我使用客户经理的方法来获取所有者电子邮件。如何使用 Robolectric 测试此方法?我应该为此目的使用 mock 吗?如果我是对的,我可以使用 Mockito 吗?有什么教程我可以做到吗?
请您参考如下方法:
首先我实现了单元测试
// Imports are skipped
/**
* Created by fminatchy on 25/02/14.
*/
@RunWith(RobolectricTestRunner.class)
@Config(manifest = "/src/main/AndroidManifest.xml")
public class TestAuthorization {
AccountManager accountManager;
Account account0;
Account account1;
Account account2;
@Before
public void init() {
creationComptes();
accountManager = AccountManager.get(Robolectric.application);
shadowOf(accountManager).addAccount(account0);
shadowOf(accountManager).addAccount(account1);
shadowOf(accountManager).addAccount(account2);
}
@Test
public void test_comptes() {
final AlbumsActivity activity = Robolectric.buildActivity(AlbumsActivity.class).create().get();
final String[] accountsName = activity.getGoogleAccounts();
assertThat(Arrays.asList(accountsName)).containsExactly("compte n°1", "compte n°3");
}
private void creationComptes() {
account0 = new Account("compte n°1", GoogleAccountManager.ACCOUNT_TYPE);
account1 = new Account("compte n°2", "pas google");
account2 = new Account("compte n°3", GoogleAccountManager.ACCOUNT_TYPE);
}
它们是位于事件中的代码:
public String[] getGoogleAccounts() {
final AccountManager accountManager = AccountManager.get(this.getApplicationContext());
Account[] accounts = accountManager.getAccountsByType(GoogleAccountManager.ACCOUNT_TYPE);
String[] names = new String[accounts.length];
for (int i = 0; i < names.length; i++) {
names[i] = accounts[i].name;
}
return names;
}
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。