2
考慮下面的代碼:在參數匹配指定泛型類類型
final Foo foo = context.mock(Foo.class);
context.checking(new Expectations() {{
one(foo).someMethod(with(aNonNull(List.class)));
}});
我試圖表明,someMethod
被調用,List<Bar>
類型的非空參數。但是,我找不出正確的語法來指定該列表包含Bar類型的對象。下面簡單的嘗試是無效代碼:
final Foo foo = context.mock(Foo.class);
context.checking(new Expectations() {{
one(foo).someMethod(with(aNonNull(List<Bar>.class)));
}});
有沒有做到這一點還是我不得不添加@SuppressWarnings("unchecked")
到我的測試方法的正確方法是什麼?
我很欣賞這不是嚴格的JMock特定的問題,但我認爲我會標記它以吸引那些過去可能遇到此問題的人。
這解釋了根本原因並從而吸引獎金。我會感謝來自這種情況的任何人的進一步評論,他們可能有不同的方式來處理這個問題。 – 2012-02-13 16:18:59
也許你可以編寫你自己的Hamcrest匹配器 - 在List.Class和Bar.class中傳遞,並匹配你的自我 – blank 2012-02-13 16:36:08