使用Espresso来测试可绘制的变化

我是新来Espresso测试,但似乎没有任何方法来测试可绘制的更改。 我有一个教程是一个ImageView Drawable幻灯片’塞进’一个半透明的TextView 。 在我的测试中,我想确保按下下一个按钮时,正确的Drawable已经插入教程的ImageView 。 没有默认的Matcher来检查Drawable ,所以我开始使用https://stackoverflow.com/a/28785178/981242写我自己的。 不幸的是,由于无法检索ImageView的活动Drawable的id,所以无法完成matchesSafely()实现。 这不是测试活动Drawable的唯一用例。 人们通常使用的工具是什么?

为什么Kotlin lang只允许项目中的单一主要function?

这不会取消在Java中有多个主要入口点的function,可以在需要时调用它。

Mockito可以在方法调用时根据它们的值validation参数吗?

我有一个Fooclass,是SUT和一个Barclass,这是它的合作者。 Foo调用在“ expectedList ”作为参数的Bar上run(List values) 。 然后, Foo将会添加更多的元素到这个List这样它的状态将和调用run()时的状态不同。 这是我的测试案例。 @Test public void testFoo() { Bar collaborator = spy(new Bar()); Foo sut = new Foo(collaborator); verify(collaborator).run(expectedList); } 请注意,协作者实际上是间谍对象而不是模拟对象。 这个测试用例将失败,因为即使run()被调用的参数等于expectedList ,它也被修改了,因为它的当前值不再等于expectedList 。 然而,这是它应该工作的方式,所以我想知道是否有方法让Mockito在调用方法时存储参数的快照,并根据这些值而不是最近的值来validation它们。

使用flatMap和filter过滤observables是否正确?

使用一个人为的例子来说明我的问题,我有一个复合对象types的Observable: Observable public class CategoryPayload { public List categories; // other meta data and getters } public class Category { public Integer id; // other meta data and getters } 我需要根据id过滤掉某些类别,所以我最终做了如下的事情: Observable categoryObservable = service.getCategoryPayload(); // use flatMap to transform the Observable into multiple mSubscription.add( categoryObservable.flatMap(new Func1<CategoryPayload, Observable>(){ public Observable call(CategoryPayload categoryPayload){ return Observable.from(categoryPayload.categories); } […]

Kotlin中参数化类的类字面语法

我试图嘲笑Kotlin的一个function Mockito.mock(Function2::class.java) 它说: “只有类才允许在类文字的左边” 。 获得对静态已知参数化类的引用的正确方法是什么? 现在我生活在一个丑陋的演员 Mockito.mock(Function2::class.java) as (Int, Int) -> Unit

我如何解决android.os.NetworkOnMainThreadException?

我运行RssReader的Android项目时出错。 码: URL url = new URL(urlToRssFeed); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); XMLReader xmlreader = parser.getXMLReader(); RssHandler theRSSHandler = new RssHandler(); xmlreader.setContentHandler(theRSSHandler); InputSource is = new InputSource(url.openStream()); xmlreader.parse(is); return theRSSHandler.getFeed(); 并显示下面的错误: android.os.NetworkOnMainThreadException 我该如何解决这个问题?

在android中的Edittext的振动

我想创建一个编辑文本,如果给定的输入是无效的将震动。 例如编辑文本的数字,如果数字是错误的,因为它包含9位数字比编辑文本将变得清晰,并会震动一段时间如何创建? 提前致谢

在Instant App中应用插件“kotlin-android”会导致“null不能转换为非空types的com.android.build.gradleBasePlugin”

我一直在试图将新公开发布的Android即时应用和Kotlin编程语言结合起来。 在使用以下(标准?)设置创建我的项目后,当我尝试构建应用程序时,出现错误消息“null不能转换为非空typescom.android.build.gradle.BasePlugin” 。 使用Kotlin可以很好的使用标准的“com.android.application”模块; 仅当我尝试在即时应用程序模块中使用它时,才会引发错误。 顶级build.gradle : buildscript { repositories { maven { url ‘https://maven.google.com’ } jcenter() } dependencies { classpath “com.android.tools.build:gradle:3.0.0-alpha1” classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4” } } // … 应用程序模块build.gradle ,其中Kotlin工作: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ // This will work. android { compileSdkVersion 25 buildToolsVersion “25.0.2” defaultConfig { // … } buildTypes { release { […]

Java中的Kotlin内部类可公开显示

我正在Kotlin开发一个Android 加密库 。 我有一些在Java应用程序中公开可见的internal类。 在文件中find这个 。 internal声明在Java中public 。 internal类的成员通过名称修改,使它更难以从Java意外使用它们,并允许根据Kotlin规则相同签名的成员不能相互看到的成员超载; 有没有办法解决这个问题?

在Kotlin中使用@ClassRule

在JUnit中,您可以使用@ClassRule来注释一个静态字段。 我怎么能在Kotlin做到这一点? 我试过了: object companion { @ClassRule @JvmStatic val managedMongoDb = … } and object companion { @ClassRule @JvmField val managedMongoDb = … } 但没有最后的作品,因为规则没有执行。 我再次检查完全相同的规则工作正常,没有静态上下文: @Rule @JvmField val managedMongoDb = …