java – EasyMock方法参数中的长null匹配

我想匹配一个有3个参数的方法:
String,A Long和CustomObject

测试应该与String完全匹配,确保Long为null并确保传递的自定义对象的类型正确.

就像是:

    EasyMock.expect(mockClass.myMethod(
                        EasyMock.eq("exact string"), 
                        EasyMock.isA(Long.class), 
                        EasyMock.isA(CustomObject.class)));

这可能不正确地匹配方法,因为Long应该为null.

我不能放EasyMock.isNull(),因为它将是一个特定的匹配和泛型和细节不能一起.有小费吗 ?

解决方法:

我不明白为什么你不能使用isNull().

EasyMock.expect(mockClass.myMethod(
                    EasyMock.eq("exact string"), 
                    EasyMock.isNull(Long.class), 
                    EasyMock.isA(CustomObject.class)));

应该没事.要么

EasyMock.expect(mockClass.myMethod(
                    EasyMock.eq("exact string"), 
                    EasyMock.<Long>isNull(), 
                    EasyMock.isA(CustomObject.class)));

哪个也应该没问题.

你不能拥有的是

EasyMock.expect(mockClass.myMethod(
                    EasyMock.eq("exact string"), 
                    null, 
                    EasyMock.isA(CustomObject.class)));
上一篇:java – 部分模拟单元测试的对象


下一篇:java – EasyMock.anyObject()是否匹配null参数?