1

私は、scalatestとmockitoを使用して、RabbitMQConnectionFactoryオブジェクトをモックしてモック接続を返そうとしています。以下は、私が使用しているテストの例です。

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ステートメントは常に「null」を出力します。私はこれらのテクノロジーを一緒に使用するのは非常に新しいので、誰かアドバイスがあったり、何か間違ったことをしているのか教えてくれないかと思っていました。前もって感謝します!

4

2 に答える 2

5

'def'を使用して誤って変数を定義しないでください!「val」や「var」の代わりに「def」を使用してモックを定義したので、変数の代わりに毎回新しいモックを返すメソッドを作成しました。

于 2012-01-03T15:45:27.537 に答える
0

connectionモックを使用する前に、モックの動作を定義する必要があると思います。例えば ​​:

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

またはこのようなもの。

于 2011-12-30T14:49:35.473 に答える