0
私は抽象クラスjava.nio.channels.ServerSocketChannel
スタブしようとしているが、私はテストサブクラスでこれらのメソッドをオーバーライドすることができますが、おそらくよりエレガントな解決策がある。もちろん、ScalaMockを使って抽象的なJavaクラスを保護された抽象メソッドでスタブする方法はありますか?
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]
を持っていますか?
申し訳ありませんが、私の場合はありません。私はちょうど 'ServerSocketChannel'メソッドが必要です –
あなたは非常に注意する必要があります。コンストラクタ内で実行される副作用は、モックに対しても実行されます。型を模倣できるようにするには、パッケージ保護されたメソッドの可視性を公開するように拡張するサブクラスを作成することができます。上記の答えを例で編集します。 –
ありがとう!私はすでに同じことをしており、それは正常に動作します。もっと洗練されたソリューションを求めていましたが、現在のScalaMock API(3.5.0)では存在しないようです。 –