Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
228 views
in Technique[技术] by (71.8m points)

java - Mockito. Verify method param to be a particular class

I have a method:

void putObject(<T extends BaseEntity> param)

Have some test where I mock this method, but I wonder, how to verify that method was called with parameter of particular class? Tried to do it in such ways:

verify(foo).putObject((SomeClass)anyObject());
------
verify(foo).putObject(any(SomeClass.class));
------
ArgumentCaptor<SomeClass> parameter = ArgumentCaptor
            .forClass(SomeClass.class);
verify(foo).putObject(parametr);

Works only the second variant with any(), but it doesnt check class ofparameter`. So if it is possible to verify that method get any object of particular class?

question from:https://stackoverflow.com/questions/14772208/mockito-verify-method-param-to-be-a-particular-class

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

User Matcher documentation isA() method.

public static <T> T isA(java.lang.Class<T> clazz)

That will solve your problem.

verify(foo).putObject(isA(SomeClass.class));


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...