Comment simuler une fonction de haut niveau Kotlin?


Niel de Wet:

Mockk permet de se moquer des fonctions statiques, mais comment se moquer d'une fonction de niveau supérieur Kotlin?

Par exemple, si j'ai un fichier Kotlin appelé HelloWorld.kt, comment puis-je me moquer de la sayHello()fonction?


HelloWorld.kt

fun sayHello() = "Hello Kotlin!"
oleksiyp:

Il existe un moyen de simuler une fonction de niveau supérieur:

mockkStatic("pkg.FileKt")
every { fun() } returns 5

Vous avez juste besoin de savoir dans quel fichier cette fonction va. Archivez le JAR ou la trace de la pile.

Articles connexes


Comment appeler une fonction kotlin de haut niveau en java?

Chriss Supposons qu'une fonction kotlin est définie en dehors d'une classe en tant que fonction de niveau supérieur. Util.kt: class Util { fun bar() } fun foo(){} Comment puis-je appeler une méthode foo()en Java? Aasmund Eldhuset foosera compilé en une fon

Fonction de haut niveau

Caio Guedes Au cours de la programmation fonctionnelle avec Scala, j'ai vu deux formes de déclaration d'un fichier def. Mais je ne connais pas les différences entre eux, et le nom donné pour cela. Comment puis-je obtenir plus d'informations à ce sujet? Déclara

Fonctions de haut niveau Kotlin vs fonction objet

Vahan J'ai une fonction statique qui est limitée à un certain contexte, par exemple uniquement pour les documents. Il existe 2 façons de le définir comme fonction ou fonction de niveau supérieur dans un objet. 1. package com.armsoft.mtrade.data.pref import co

Attendre une déclaration de haut niveau avec Kotlin 1.3

Nicolas Zozol J'ai un problème avec du code Kotlin. Le compilateur 1.3 donne trois erreurs : Attendre une déclaration de haut niveau Attendre une déclaration de membre Attendre une déclaration de haut niveau Mais l'éditeur intellij ne le met pas en évidence. E

Comment simuler un appel de fonction dans une fonction ?

Yogesh Chettiar Je crée des tests unitaires pour une application PlayFramework Scala et je suis tombé sur une fonction que je dois tester, qui effectue un appel d'interface de ligne de commande. Cet appel cli ne peut pas être exécuté dans notre environnement d