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'方法 –
那麼你需要非常小心。在構造函數中運行的任何副作用也將運行模擬。爲了能夠模擬這種類型,你可以創建一個(如果你喜歡的話仍然是抽象的)子類,它將包保護方法的可見性擴展到public。我將用一個例子來編輯上面的答案。 –
謝謝!我已經做了同樣的事情,它工作正常。只是要求更優雅的解決方案,但目前ScalaMock API(3.5.0)似乎不存在。 –