Tag: powermock

如何模拟Kotlin单身物件?

给定一个Kotlin单身对象和一个叫它的方法的乐趣 object SomeObject { fun someFun() {} } fun callerFun() { SomeObject.someFun() } 有没有办法模拟调用SomeObject.someFun() ?

嘲笑kotlin中的伴侣对象函数

我正在使用PowerMock和Roboelectric,并且想要模拟一个类的伴侣对象函数。 当我这样做时,我得到一个错误: org.mockito.exceptions.misusing.MissingMethodInvocationException: when() requires an argument which has to be ‘a method call on a mock’. For example: when(mock.getArticles()).thenReturn(articles); 我所拥有的基本上是这样的: open class MockableClass private constructor(context: Context) { companion object { private val INSTANCE_LOCK = Any() private var sInstance: MockableClass? = null @JvmStatic fun getInstance(context: Context): MockableClass? { synchronized(INSTANCE_LOCK) { sInstance = (sInstance ?: MockableClass(context).let […]

Mockito / Powermock不像Kotlin预期的那样工作

我使用mockito / powermock版本1.7.0,Spring Boot 2.0.0 M2,Kotlin 1.3.0。 我正在测试一个Spring @Service类,注入一个Repository。 我想在我的测试中嘲笑这个存储库,所以我可以测试这个类本身。 我是Kotlin的新手,但我来自Java,所以我尝试了这种“java方式”,但可能我错过了一些东西… 这是我的服务界面: interface MyService { fun create(myObject: MyObject): MyObject } …及其实施: @Service class DefaultMyService : MyService { @Autowired lateinit var myRepository: MyRepository override fun create(myObject: MyObject): MyObject = this.myRepository.insert(myObject) } 这里是我的存储库(我使用Mongo的Spring Data): interface MyRepository: MongoRepository 这是我的测试课: @RunWith(PowerMockRunner::class) @PrepareForTest(MyService::class) class MyServiceTest { @Mock lateinit var myRepository: […]

Powermockito间谍和Kotlin的对象声明:不能继承最终的类

在将测试从java转换为kotlin时,Koltin和Powermocks的spy()中的对象声明有一些问题 open class TestData(val test: String){ open fun test(){ println("TestData") } } @RunWith(PowerMockRunner::class) open class MockitoTests { lateinit var testData: TestData lateinit var testDataObjectDeclaration: TestData @Before open fun setup(){ testData = PowerMockito.spy(TestData("Test")) testDataObjectDeclaration = PowerMockito.spy(object: TestData("test"){ override fun test() {} }) } @Test fun dummyTest() {} } 当我运行测试时,我得到以下错误: java.lang.IllegalArgumentException:无法继承最终的类类at.lukle.kotlinplayground.MockitoTests $ setup $ 1 at org.mockito.cglib.proxy.Enhancer.generateClass(Enhancer.java:447) […]

如何测试在Kotlin中调用顶层函数的代码?

我对Kotlin很新。 我有一个类调用顶级功能(这使得一个http调用)。 我正在尝试为我的课程编写单元测试,而不必将其发布到网络上。 有没有办法模拟/ powermock /拦截从我的课到Kotlin顶级功能的呼叫? class MyClass { fun someMethod() { // do some stuff "http://somedomain.com/some-rest/action".httpGet(asList("someKey" to "someValue")).responseString { (request, response, result) -> // some processing code } } } 它使用kittinunf / Fuel库进行httpGet调用。 它将一个顶级函数添加到String中,最终在Fuel(Fuel.get())中调用伴随对象函数。 单元测试需要拦截对httpGet的调用,以便我可以返回测试的json字符串。

如何使用PowerMock模拟Kotlin类(最终)?

我想知道如何用PowerMock模拟kotlin final类,以便测试它。 我遵循指导来测试Java最终班,但我仍然有这个错误 Cannot subclass final class 有没有办法做到这一点?

Android Kotlin:使用Mockito / PowerMock嘲笑免费的功能

我在Kotlin有一个免费的功能,我想模拟测试目的。 我的免费功能是这样的: fun somethingAwesomeIsDoneHere(param: String) : String { // Awesome } 在我的测试中,我想模拟/存根,以便当它被称为模拟值返回。 when(somethingAwesomeIsDoneHere(something)).thenReturn(retValue) 即使PowerMock可以完成,请让我知道。 PS:我正在为我的项目使用Kotlin 1.0.1-2。

嘲笑Kotlin的最后一场

我是Mockito Kotlin的新手。 下面的代码有一个engine引起的错误,一个不被模拟的不可变字段。 我花了很多时间来解决这个问题。 我发现一种嘲笑的方式,直到我不明白,不满足。 将一个字段移到构造函数中。 class Car(val engine: Engine) { … } 改变为可变字段。 private var engine = Engine() 有没有其他的方法? class Car { private val engine = Engine() // here var state: String? = null fun move() { state = engine.state } } @RunWith(MockitoJUnitRunner::class) class CarTest { @Mock private lateinit var mockedEngine: Engine @InjectMocks private […]

如何模拟Kotlin单身物件?

给定一个Kotlin单身对象和一个叫它的方法的乐趣 object SomeObject { fun someFun() {} } fun callerFun() { SomeObject.someFun() } 有没有办法模拟调用SomeObject.someFun() ?

嘲笑Kotlin的扩展功能

如何在测试中使用Mockito或PowerMock来模拟Kotlin扩展功能? 由于它们是静态解析应该作为静态方法调用还是非静态?