Login
Unit Test. Кто использует?
1707 просмотров
Перейти к просмотру всей ветки
in Antwort MrSanders 25.11.16 15:01
Я уже разобрался с JMockit.
Комбинация мокапов с "ожиданиями" довольно мощная.
public class VOCreaterTest {
@Mocked
private BenutzerVO benutzer;
@Test
public void createVO_Vorgang() throws Exception {
new MockUp<ObjectCacheSingleton>() {
@Mock
public synchronized CacheEntry getCachedObject(ObjectKey key) {
if (key.getKey().equals(CacheConstants.KEY_LIST_VORGANGSTATUS)) {
CacheEntryImpl entry = new CacheEntryImpl();
FKValue fk = new FKValue();
fk.setKey(CacheConstants.VORGANGSTATUS_OFFEN);
entry.setObject(fk);
return entry;
}
return new CacheEntryImpl();
}
@Mock
public void initializeCachedObjects() {
}
};
new MockUp<ObjectmanagementUtil>() {
@Mock
public VorgangVO loadVorgangDaten(VorgangVO vorgang, String schadenId, FKValueWithSchadenschluessel beteiligtenrollen, FKValueWithSchadenschluessel fahrzeugrollen, String messageAlle) {
return null;
}
};
new MockUp<Logger>() {
@Mock
public void debug(Object message) {
}
};
VOCreater creater = new VOCreater();
VorgangVO vo = (VorgangVO) creater.createVO(SamVO.VO_TYPE_VORGANG, null, benutzer);
assertTrue(vo.isOffen());
}
@Test
public void createVO_Schaden() throws Exception {
new MockUp<ObjectCacheSingleton>() {
@Mock
public synchronized CacheEntry getCachedObject(ObjectKey key) {
return new CacheEntryImpl();
}
@Mock
public void initializeCachedObjects() {
}
};
VOCreater creater = new VOCreater();
SamVO vo = creater.createVO(SamVO.VO_TYPE_SCHADEN, null, benutzer);
assertTrue(vo instanceof SchadenVO);
SchadenVO schadenVO = (SchadenVO) vo;
assertNotNull(schadenVO.getSachbearbeiter());
}
}
Правда, у автора похоже clean code головного мозга, а развитие фреймворка идет в сторону чистого тестирования.