@RunWith(PowerMockRunner::class)
@PrepareForTest(PotatoProvider::class, PotatoConsumer::class)
class WantedButNotInvoked {
@Mock
lateinit var potatoConsumer: PotatoConsumer
@Test
fun potato() {
Observable.just(Potato()).subscribe(potatoConsumer)
verify(potatoConsumer).accept(Potato())
//verify(potatoConsumer).accept(any()) //-> This fails too with the same reason
}
}
data class Potato(val value: Int = 1)
class PotatoConsumer : Consumer<Potato> {
override fun accept(t: Potato?) {
println(t)
}
}
所以我用这个mock(potatoConsumer)订阅,rxJava调用了“accept”,mockito将其标记为交互,但mockito认为这个交互不是我所期望的,为什么?
图书馆的版本使用了她:
mockitoVersion = '2.8.9'
mockitoAndroidVersion = '2.7.22'
powerMockVersion="2.0.2"
kotlinMockito="2.1.0"
rxKotlin = "2.3.0"
rxJavaVersion = "2.2.10"
mock maker inline
,但Mockito与Powermock maker inline冲突
使用PowerMockRunner的"绿色"马铃薯测试方法示例
@Test
fun potato() {
potatoConsumer = mock() // <-
Observable.just(Potato()).subscribe(potatoConsumer)
verify(potatoConsumer).accept(potato)
}
可能是因为您没有传递相同的Bagato()
实例。试着把你的代码重构成这个
@Test
fun potato() {
val testPotato = Potato()
`when`(fakePotatoProvider.getObservable()).thenReturn(Observable.just(testPotato))
fakePotatoProvider.getObservable().subscribe(potatoConsumer)
verify(potatoConsumer).accept(testPotato)
}
正如我上面提到的,它可能失败的原因是在传递Bagato
对象时不断创建新实例,除非比较失败。
我不熟悉PowerMock
,但我尝试了这个测试,它通过了:
@Test
fun potato() {
fakePotatoProvider = Mockito.mock(PotatoProvider::class.java)
potatoConsumer = Mockito.mock(PotatoConsumer::class.java)
`when`(fakePotatoProvider.getObservable()).thenReturn(Observable.just(Potato()))
fakePotatoProvider.getObservable().subscribe(potatoConsumer)
verify(potatoConsumer).accept(Potato())
}
我在运行Java应用程序时遇到了一个小问题(当我通过Maven运行它时,它工作得很好)。我得到一个错误: 模块位于my文件夹中,我的文件夹结构如下: 对于- 对于我的类 奇怪的是,当我在文件它再次开始工作,但在几次运行后中断。 编辑: 将位置更改为修复了该问题,但是,它破坏了我的Maven install命令并引发以下错误:
无法在 AnjularJS 应用程序中看到拖动的元素,即使执行了拖放操作且没有任何错误。 代码如下: 以下是执行和执行的不同方法,没有错误: 还执行了JavaScript方法:但是没有运气,它也执行没有错误,但无法执行拖放操作在UIenter图像描述在这里 上述所有方法和命令都是编译和执行的,没有任何错误,但无法在UI中执行拖放操作(请帮助)。 尝试了所有可能的组合,我知道任何人都可以让我知道我错
问题内容: 我有一个多模块Maven项目,其中一个模块用于分发。 该发行版包含一个我想轻松执行的可执行jar。但是,要执行它,我必须键入类似以下内容: 简单键入以下内容将是更好的选择: 不幸的是,我找不到找到执行.jar的java目标的方法。exec目标实际上可以做到,但是有一个陷阱:jar包含一个嵌入式码头服务器,并且由于exec的工作方式(不使用与maven相同的JVM),除非我杀死进程,否则
返回位于给定的基于一的行和列索引处的该矩阵的条目。如果行或列不是1或2,则引发异常。 这是我的方法的代码,但即使我使用参数row=1和col=2调用该方法;它显示了IndexOutOfBoundsException。有没有办法解决这个问题?
所以,最近我开始和Presta一起工作,前台的一切都很顺利,但在后台却出现了困难。 我正在尝试连接到在AdminController中激发的action AdminCustomerformModifier。像这样的php
看起来HttpClient及其子类有问题。