首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用google-api-client对活动进行单元测试

如何使用google-api-client对活动进行单元测试
EN

Stack Overflow用户
提问于 2014-12-18 19:21:19
回答 1查看 1.8K关注 0票数 4

我正在开发一个Android应用程序,我想知道如何使用GoogleApiClient对一个活动或服务进行单元测试。

例如,在GooglePlayService可用且不可用的情况下,如何测试活动或服务?我正在考虑使用Mockito,但是由于GoogleApiClient是从活动内部实例化的,所以无法模拟它(AFAIK)。

代码语言:javascript
复制
public class MyService extends Service {
...
private GoogleApiClient googleApiClient;
...
@Override
public void onCreate() {
    ...
    googleApiClient = new GoogleApiClient.Builder(this) ... .build();
    ...
}
...
private void doSomething() {
    if(googleApiClient.isConnected) {
        ...
    }
}

此外,我还读到不应该嘲笑第三方库,因为如果库被更新了,我的测试套件不会失败,但我如何才能这样做呢?

PS:我肯定这个问题以前有人问过,但我找不到好的关键词:/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-18 20:55:16

你需要嘲笑。但是..。

(...)因为GoogleApiClient是从活动内部实例化的

正如您已经看到的,这违背了嘲笑的目的,是一个潜在的改进点。实例化外部服务应该通过工厂 (然后可以很容易地被模拟)或通过依赖注入容器传递给类(这同样可以很容易地被模拟)。

此外,我还读到不应该嘲笑第三方库,因为如果库被更新了,我的测试套件不会失败,但我如何才能这样做呢?

这是相当奇怪的说法。您将(至少应该)进行集成测试,在实际使用第三方库的地方进行更广泛的组件测试。在单元测试中,您可以模拟依赖项(任何依赖项),以便进行隔离测试,并将重点放在单元上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27554112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档