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.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号