2015-04-08 2 views
0

Я пытаюсь макет контекста Spark, чтобы вернуть издеваемую RDD, когда вызывается newAPIHadoopFile.Соответствующие классы в Scala с Mockito

Я поставил его следующим образом:

val mockedOuterRdd = mock[RDD[(NullWritable, MyProtobuf)]] 

mockedSc.newAPIHadoopFile(anyString, anyObject(),classOf[org.apache.hadoop.io.NullWritable], 
    classOf[MyProtobuf],anyObject()) returns mockedOuterRdd 

Это нормально в компиляторе, но когда я запускаю его я получаю

Invalid use of argument matchers! 
5 matchers expected, 3 recorded: 
-> at ... 
This exception may occur if matchers are combined with raw values: 
    //incorrect: 
    someMethod(anyObject(), "raw String"); 
When using matchers, all arguments have to be provided by matchers. 
For example: 
    //correct: 
    someMethod(anyObject(), eq("String by matcher")); 

Есть ли способ, что я могу использовать что-то вроде eq(...) (который я пробовал и не работает) с classOf[...]?

Я попытался использовать anyObject для классов, но он отображает параметр типа для RDD, чтобы они были правильными.

Спасибо за чтение.

+0

вы пробовали Иса? http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/Matchers.html#isA(java.lang.Class) – kpbochenek

ответ

2

eq работает для меня, однако я предполагаю, что вы могли бы оставить некоторые детали своей тестовой структуры. Я использовал scalatest, и когда я попытался использовать eq, он продолжал кричать на меня, чтобы вернуть boolean вместо Class. Однако есть общий eq, который должен взять на себя. Таким образом, решение является использование полного пути:

mockedSc.newAPIHadoopFile(anyString, anyObject(), 
    org.mockito.Matchers.eq(classOf[org.apache.hadoop.io.NullWritable]), 
    org.mockito.Matchers.eq(classOf[org.apache.hadoop.io.NullWritable]), anyObject()) 
+0

Я получал ошибку об этом, возвращая Boolean, когда я его пробовал тоже - это все. Спасибо – user1111284

+0

Спасибо! У меня та же проблема, и я использовал весь путь org.mockito.Matchers.eq для меня тоже! Я до сих пор не понимаю, почему он не работает с ним без полного пути импорта ... –

Смежные вопросы