当尝试模拟rabbitmq ConnectionFactory时,Mockito在/然后返回时始终在Scala Test中返回null

Bry*_*yan 1 scala mockito rabbitmq scalatest

我正在尝试使用scalatest和mockito来模拟RabbitMQ ConnectionFactory对象以返回模拟连接.以下是我正在使用的示例测试:

class RabbitMQMockTest extends FunSuite with MockitoSugar {
    test("RabbitMQ ConnectionFactory is correctly mocked") {
        def connectionFactory = mock[ConnectionFactory]
        def connection = mock[Connection]

        when(connectionFactory.newConnection()).thenReturn(connection)
        println(connectionFactory.newConnection())

        assert(connectionFactory.newConnection() != null)
    }
}
Run Code Online (Sandbox Code Playgroud)

这总是失败,println语句总是打印"null".我一起使用这些技术非常新,并且想知道是否有人有任何建议或者如果我做错了什么我可以告诉我.提前致谢!

Bry*_*yan 5

不要使用'def'意外定义变量!我使用'def'而不是'val'或'var'来定义模拟,所以我创建了一个每次都返回一个新模拟的方法,而不是变量.