Je suis en train de bouchonner classe abstraite java.nio.channels.ServerSocketChannel
mais nous avons euComment puis-je copier une classe java abstraite avec des méthodes abstraites protégées via ScalaMock?
Error:(15, 18) object creation impossible, since:
it has 2 unimplemented members.
/** As seen from <$anon: java.nio.channels.ServerSocketChannel>, the missing signatures are as follows.
* For convenience, these are usable as stub implementations.
*/
protected[package spi] def implCloseSelectableChannel(): Unit = ???
protected[package spi] def implConfigureBlocking(x$1: Boolean): Unit = ???
socket = stub[ServerSocketChannel]
Bien sûr, je peux remplacer ces méthodes dans la sous-classe de test, mais peut-être il y a une solution plus élégante? Macro Les macros sont des sous-classes du type à mock.
Désolé, ce n'est pas mon cas. J'ai besoin exactement des méthodes 'ServerSocketChannel' –
Eh bien, vous devez être très prudent. Tous les effets secondaires qui s'exécutent dans le constructeur s'exécuteront également pour le simulacre. Pour pouvoir se moquer du type, vous pouvez créer une sous-classe (toujours abstraite si vous préférez) qui élargit la visibilité des méthodes protégées par un paquet à public. Je vais modifier la réponse ci-dessus avec un exemple. –
Merci! Je suis déjà fait la même chose et ça fonctionne bien. Juste demandé une solution plus élégante, mais il ne semble pas exister pour l'API actuelle ScalaMock (3.5.0). –