2013-05-28 6 views
2

У меня проблема с JUnit-тестированием одного метода. Я использую EasyMock.createMock, чтобы издеваться над некоторыми Dao. Я все еще получаю easymock unexpected method call expected 1 actual 0 someDato.findByCriteria(criteria, -1, -1) Так выглядит код (это только черновик). Я подозреваю, что проблема в criteria объект. Точки ошибок линии return someDato.findByCriteria(criteria, -1, -1);JUnit EasyMock неожиданный метод вызова ожидается 1 актуально 0

@Test 
public void findDataSericeTest(){ 
    DetachedCriteria criteria = DetachedCriteria.forClass(SomeClass.class); 
    criteria.add(Restictions.eq("sth1",string1)); 
    criteria.add(Restictions.eq("sth2",string2)); 

    expect(someDato.findByCriteria(criteria, -1, -1)).andReturn(SomeClass); 
    replay(someDao); 
    serviceTested.findDataService("string1","string2"); 

    EasyMock.verify(someDao); 

} 

public SomeClass findDataService(String string1, String string2){ 
    DetachedCriteria criteria = DetachedCriteria.forClass(SomeClass.class); 
    criteria.add(Restictions.eq("sth1",string1)); 
    criteria.add(Restictions.eq("sth2",string2)); 

    return someDato.findByCriteria(criteria, -1, -1); 
} 

Любые идеи?

ответ

1

Держу пари DetachedCriteria не реализует/отменяет equals и hashcode. Верификация будет использовать метод ожидающего аргумента equals, чтобы узнать, соответствует ли он фактическому аргументу.

+0

У меня возникла идея использовать 'expect (someDato.findByCriteria (isA (DetachedCriteria.class, isA (Integer.class), isA (Integer.class)) иReturn (SomeClass);' но я получал исключение NullPointerException в этой строке – adaniluk

+0

попробуйте 'isA (DetachedCriteria.class), eq (-1), eq (-1)' .Если это не работает, отправьте попытку –

+0

Также вы попробовали реализовать 'equals' в' DetachedCriteria'? –

Смежные вопросы