0
这似乎应该很简单,但我在圈子里跑来跑去。Mockito无法在方法中抛出异常时设置
我:
@Mock
SimpleAbstractCacheWithInputs<Key, Value, Inputs> underlyingCache;
然后我尝试设置上的缓存来电setup()
:
when(underlyingCache.getOrCreate(usdgbpKey)).thenReturn(usdgbpCfi);
但是,这是因为它试图执行抛出一个空指针异常从getOrCreate()
内实际对象中的实际代码,根本没有被模拟,并且没有设置。
但我不想永远运行getOrCreate
真实代码,我只是想让它返回嘲弄的值!
那么,我怎么做,而不必设置underlyingCache
内的一切,我永远不会用来嘲笑这一个方法调用?
underlyingCache是您正在测试的类的成员对象吗?你是否将模拟注入了正在测试的课程中?你可以发布更多的测试课程吗? – blur0224
underlyingCache作为构造函数参数传递给正在测试的类。但是我从来没有进入这个阶段,因为我不能使用when()来设置underlyingCache。 ...我刚刚设法通过切换模拟接口而不是缓存对象来解决此问题。尽管如此,我仍然想知道如何解决这个问题。 –
从你发布的内容看,它看起来不错,但行为最终听起来像这个班不被嘲笑。我需要看到一个更完整的例子来猜测为什么。此外,这可能是有用的,因为你正在处理抽象类http://stackoverflow.com/questions/1087339/using-mockito-to-test-abstract-classes – blur0224