EasyMock方法参数中的长null匹配

时间:2013-08-02 02:58:31

标签: java unit-testing easymock

我想匹配一个有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(),因为它将是一个特定的匹配和泛型,细节不能放在一起。有什么提示吗?

1 个答案:

答案 0 :(得分:9)

我不明白为什么你不能使用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)));