我正在为iOS / Android开发Kotlin多平台(KMP)库。我已经为JVM编写了一些单元测试,并使用MockK为它们创建了间谍和模拟,但是MockK尚不完全支持Kotlin本机。
因此,我想知道其他从事KMP项目的人如何为iOS平台编写单元测试。一个例子将不胜感激。
答案 0 :(得分:2)
我环顾四周,在Kotlin' General slack中问,这是一个很棒的空间,您可以在这里直接询问Kotlin开发人员和发烧友Kotlin语言相关的问题,包括多平台内容。
但是,在我撰写本文时,我认为您无法使用Mockk或任何其他模拟库来模拟通用模块。
您可以在针对本机(作为平台之一)的通用模块中进行测试,这是老式的interface / impl / stub方法。
答案 1 :(得分:1)
当前,MockK不支持Kotlin / Native或Kotlin / JS。但是,两者均作为重要项目on the project backlog放置:
鉴于模拟库在很大程度上依赖于语言功能(例如反射),这是一个很大的挑战,而Kotlin多平台还没有完全支持这种语言功能(如果没有针对特定平台的大量变通办法,甚至可能无法支持)。
这当然不会阻止您编写自定义模拟类并验证您在其中设置的状态,其中的测试将能够在所有平台上运行。
答案 2 :(得分:0)
我测试了androidTest中的常见资源。那里有Mockk。
我认为这已经足够了,因为Android使用与通用模块完全相同的代码。
shared
> src
>> androidMain
>> androidTest < tests here
>> commonMain < code here