草庐IT

android - 如何模拟 Android NFC 标签对象进行单元测试

我目前正在开发一个需要NFC集成的Android项目。现在我想编写一些(j)单元测试来查看应用程序是否可以接收NFCIntent(特别是ACTION_TECH_DISCOVERED)并将给定的标签(在NfcAdapter.EXTRA_TAG中)放在总线系统。但是令我惊讶的是,我无法创建Tag实例或模拟实例。有人可以向我解释如何进行(单元)测试吗?此时我什至会接受一种形式的集成测试,过程是:检测NFCIntent获取标签对象将其包裹在CardDetectedEvent中放在总线上。我有一部启用了NFC的手机和几张用于测试的卡。安卓SDK版本:19使用的库:robolectric、juni

android - Robolectric 3.0 : Mocking System. currentTimeMillis()

我正在尝试修改System.currentTimeMillis()返回的值,以便我可以执行以下操作:向数据库写入内容,模拟等待5分钟,对数据库进行查询(查询取决于写入值)。[thisSOthread]中建议的代码:ShadowSystemClockshadowClock=Robolectric.shadowOf(SystemClock.class);shadowClock.setCurrentTimeMillis(1424369871446);不编译,因为shadowOf方法被移除。尝试替代方案,例如:ShadowSystemClockshadowClock=newShadowSyst

android - 使用 Mockito 模拟构建版本

我的目标是使用Mockito模拟Build.Version.SDK_INT。已经尝试过:finalBuild.VERSIONbuildVersion=Mockito.mock(Build.VERSION.class);doReturn(buildVersion.getClass()).when(buildVersion).getClass();doReturn(16).when(buildVersion.SDK_INT);问题是:当mock之后需要方法时,.SDK_INT不是方法。 最佳答案 到目前为止,与此问题类似的其他问题看起来

java - 为 Android 单元测试模拟 WifiManager

我正在尝试为几个依赖WifiManager和返回的ScanResults的类实现一些单元测试。我想要做的是能够控制我收到的ScanResults,以便测试各种不同的条件。不幸的是,我很难成功模拟WifiManager(尽管我想我可以在我的MockWifiManager中传递它的构造函数空引用)。这将只是我的第一个问题,因为一旦我有一个MockWifiManager可以玩(如果它能工作!)我将必须成功创建我的测试ScanResults,它没有公共(public)构造函数(想象它是由某个地方的某个工厂创建的)。问题:如果它没有公共(public)构造函数,我什至可以扩展它吗?我是不是做错了

android - 如何在创建 Activity 之前模拟方法?

我有一个ActivitypublicclassMyActivityextendsActionBarActivity{publicinti;@OverrideprotectedvoidonCreate(finalBundlesavedInstanceState){super.onCreate(savedInstanceState);i=getSomeInt();}protectedintgetSomeInt(){return1;//herecanbeanapi-request}}我想用robolectric3.0和mockito测试它。但我需要模拟getSomeInt()方法。@RunW

android - 如何将虚假的加速度计值发送到真实设备上的应用程序?

例如,LocationSpoofer通过使用访问模拟位置权限给出一个虚假位置,我可以让我的设备发出一个信号,表明它出现在我想要的任何地方。同样,我可以伪造加速度计数据来模拟用户可能处于的各种情况吗?提前致谢。 最佳答案 您可以使用SensorSimulator在您的Android设备或模拟器(downloadlink)中模拟加速。 关于android-如何将虚假的加速度计值发送到真实设备上的应用程序?,我们在StackOverflow上找到一个类似的问题: h

发送模拟位置时 Android 模拟器重新启动

我需要一些帮助。我正在开发一个获取用户位置的应用程序。我确实引用了很多关于此的网站,所以我很确定我没有遗漏这里的任何步骤(从代码到发送模拟位置)。所以无论如何,我的问题是每当我发送一个模拟位置(使用Eclipse的DDMS和telnet)时,模拟器就会死机然后重新启动。我还向list文件添加了权限(以定位用户的粗略和精细位置)。我也在Windows和Mac上都尝试过,但同样的事情发生了。:(这是日志,以防万一:02-0113:17:11.793:INFO/ActivityManager(61):Displayedbcorp.mtms/.Main:+4m49s987ms02-0113:1

android - 在 Android Marshmallow 中启用模拟位置

我无法让模拟位置在AndroidMarshmallow中工作。我已经在Android6.0中安装了应用程序。现在,当我想通过以下选项为此应用设置模拟位置时。Setting>>DeveloperOption>>SelectMocklocationapp我看不到任何可供选择的应用程序。有没有人在Marshmallow下成功启用模拟位置? 最佳答案 如果您使用模拟位置权限:然后你就可以通过Setting>>DeveloperOption>>SelectMocklocationapp来选择你的应用

java - 使用模拟位置而不在设置中设置它

我正在编写一个应用程序,它利用了android中的位置模拟功能。我想要实现的是模拟我的位置,而无需在开发人员选项中设置“允许模拟位置”标志。我知道这是可能的,因为适用于此应用程序:https://play.google.com/store/apps/details?id=com.lexa.fakegps&hl=en我尝试过的:生成apk,移动到/system/app,重启我还在list中使用和不使用ACCESS_MOCK_LOCATION权限进行了尝试。但这一切都导致了这个异常:RuntimeException:无法启动Activity:SecurityException:需要ACCE

使用 MockContext 的 Android ApplicationTestCase

我是Android测试的新手,我正在尝试使用MockContext创建一个ApplicationTestCase(实际上我正在尝试使用重命名模拟上下文)。但我不断收到AssertionFailedError。到目前为止,这是我非常基本的代码:AppTests.javapackagecom.myProject.test;importandroid.test.ApplicationTestCase;publicclassAppTestsextendsApplicationTestCase{publicAppTests(){super(MyApplication.class);}@Overr