Mockito when / thenReturn всегда возвращает нуль в Scala Test при попытке смоделировать rabbitmq ConnectionFactory - PullRequest
1 голос
/ 28 декабря 2011

Я пытаюсь смоделировать объект RabbitMQ ConnectionFactory, чтобы вернуть смоделированное соединение, используя scalatest и mockito. Ниже приведен пример теста, который я использую:

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)
    }
}

Это всегда терпит неудачу, и оператор println всегда печатает "ноль". Я очень новичок в использовании этих технологий вместе, и мне было интересно, есть ли у кого-нибудь какой-либо совет или может сообщить мне, если я делаю что-то не так. Заранее спасибо!

Ответы [ 2 ]

5 голосов
/ 03 января 2012

Не определяйте случайно переменные, используя 'def'! Я определил макеты, используя 'def' вместо 'val' или 'var', поэтому я создал метод, который каждый раз возвращает новый макет вместо переменной.

0 голосов
/ 30 декабря 2011

Я думаю, вы должны определить поведение на connection макете, прежде чем сможете его использовать. Например:

when(connection.createChannel()).thenReturn(new Channel {...})

или как-то так.

...