2017-01-12 8 views
3

は私のシナリオmockitoで日付を模擬する方法は?ここで

public int foo(int a) { 
    return new Bar().bar(a, new Date()); 
} 

My test: 
Bar barObj = mock(Bar.class) 
when(barObj.bar(10, ??)).thenReturn(10) 

である私は)(いずれかのプラグイン、ANYOBJECT()などでプラグインするどのような任意のアイデアを試してみましたか?

しかし、私は例外を得続ける:

.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
Invalid use of argument matchers! 
3 matchers expected, 1 recorded: 


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")); 

For more info see javadoc for Matchers class. 

我々はpowermocksを使用してはいけません。エラーメッセージとして

答えて

4

あなたは(エラーは、すでに述べたように)そこに生の値を渡します。代わりに次のようなマッチャーを使用してください:

import static org.mockito.Mockito.*; 

... 
when(barObj.bar(eq(10), any(Date.class)) 
    .thenReturn(10) 
1

状態:

マッチャーを使用する場合は、すべての引数は、マッチャーによって提供されなければなりません。

Bar bar = mock(Bar.class) 
when(bar.bar(eq(10), anyObject())).thenReturn(10) 
関連する問題