使用Robolectric进行Android测试:无法识别Facebook SDK

使用Robolectric进行Android测试:无法识别Facebook SDK,第1张

概述我们正在尝试在 Android Studio中使用Robolectric测试框架来测试Facebook API. Facebook登录按钮有效,因此Facebook API正常运行.但是,以下测试失败: package com.airportapp.test.Models; import android.app.Activity; import org.junit.Assert 我们正在尝试在 Android Studio中使用Robolectric测试框架来测试Facebook API. Facebook登录按钮有效,因此Facebook API正常运行.但是,以下测试失败:

package com.airportapp.test.Models;    import androID.app.Activity;    import org.junit.Assert;    import org.junit.Before;    import org.junit.Test;    import org.junit.runner.RunWith;    import org.robolectric.annotation.Config;    import org.robolectric.Robolectric;    import com.airportapp.test.MyRobolectricTestRunner;    import com.airportapp.LoginActivity;    import static org.junit.Assert.assertFalse;    import static org.junit.Assert.assertTrue;    @RunWith(MyRobolectricTestRunner.class)    public class LoginActivityTest {            @Before            public voID setup() {            //do whatever is necessary before every test            }    @Test    public voID testActivityFound() {            Activity activity = Robolectric.buildActivity(LoginActivity.class).create().get();            Assert.assertNotNull(activity);            }    }

错误是AndroID Studio在运行测试时找不到androID.support文件.你可以在这里看到错误:

显示的另一个错误是:
androID.vIEw.InflateException:XML文件app / src / main / res / layout / activity_login.xml第#行(对不起,尚未实现):错误输出类com.facebook.Widget.Loginbutton

所以AndroID Studio也不满意facebook登录按钮:(但它有效…我们认为我们需要导入一些东西,但我们不知道在哪里放置它.

解决方法 InflateException是因为Robolectric无法从Facebook SDK中找到资源.要解决此问题,必须更新project.propertIEs文件以指向Facebook SDK项目.通过添加以下行来执行此 *** 作:

androID.library.reference.1={Path}

{Path}应该是一个相对路径,从project.propertIEs文件到包含Facebook SDK项目的AndroIDManifest.xml的文件夹.在我的情况下是../../build/intermediates/exploded-aar/com.facebook.androID/facebook/3.21.0.

请注意,这适用于所有包含Robolectric无法找到的资源的AndroID库项目.进一步阅读:here和here.此外,有关project.propertIEs的更多文档可以在here找到.请注意,在我的项目中,Robolectric测试位于AndroID应用程序项目本身.因此,您还可以尝试将project.propertIEs文件放在与用于测试的AndroIDManifest.xml相同的目录中.

至于你的第一个问题;我没有个人经验.但似乎是因为Gradle在编译单元测试时找不到支持库.从this问题的答案应该解决它.

总结

以上是内存溢出为你收集整理的使用Robolectric进行Android测试:无法识别Facebook SDK全部内容,希望文章能够帮你解决使用Robolectric进行Android测试:无法识别Facebook SDK所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1125331.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存