我有以下给出给定套接字的代码,将内容写入套接字,并基于此返回Right
或Left
class Gateway {
def sendEvent(
str: String,
socket: Socket): Either[CustomException, String] = {
Try {
val writer =
new BufferedWriter(new OutputStreamWriter(socket.getOutputStream))
writer.write(s"${str}\n")
writer.flush()
} match {
case Success(_) => Right(str)
case Failure(_) => Left(CustomException)
}
}
}
我正在尝试对sendEvent
方法进行单元测试。但是行
new BufferedWriter(new OutputStreamWriter(socket.getOutputStream))
防止我这样做。现在,由于我总是需要打开一个新连接,因此无法将BufferedWriter作为依赖项传入。
我正在使用Scalatest
和Mockito
进行测试。任何有关如何对该代码进行单元测试的想法都将受到高度赞赏。在此先感谢!!!
我认为,除了拥有精美的测试覆盖率报告之外,对该课程进行单元测试是没有意义的。
我认为该代码应该由更大模块的集成测试间接覆盖。
如果您真的想单独测试它,我会在测试中启动一个本地测试服务器并向其发送消息。
这样的测试宁愿验证您对套接字工作流程的理解,也不是对业务逻辑的理解。