3

java.util.Listを返したい

  val cacheManager = mock(classOf[CacheManager])
  val cache = mock(classOf[Cache])

  when(cacheManager.getCache(anyString)).thenReturn(cache)
  when(cache.getKeys.asInstanceOf[List[String]]).thenReturn(List("some_key"))

コンパイルしますが、スローします:

  java.lang.NullPointerException
  at net.sf.ehcache.Cache.checkStatus(Cache.java:2722)
  at net.sf.ehcache.Cache.getKeys(Cache.java:1912)
  at (last line of code)

どうすれば修正できますか?私はいくつかの方法を試しましたが、成功しませんでした。

メソッドシグネチャ:

     public final java.util.List getKeys() throws java.lang.IllegalStateException, net.sf.ehcache.CacheException { /* compiled code */ }
4

1 に答える 1

1

ただし、Mockito などの拡張機能である PowerMock は、最終的なメソッドをモックできます。http://code.google.com/p/powermock/wiki/MockFinal

また、java.util.List を参照するときは、通常は scala.collection.immutable.List である List だけでなく、完全な名前を使用することをお勧めします。

于 2012-11-22T23:21:31.917 に答える