Witam,
nigdy nie pisałem testów i prosiłbym o pomoc. Mam klasę TmMonitor:
package tasksMonitor;
public class TmModel implements TmModelInterface {
HibernateUtil hibernateUtil;
User currentUser;
RealTimeObserver realTimeObserver;
public TmModel() {
hibernateUtil = new HibernateUtil();
currentUser = hibernateUtil.getUser("grzegorz");
}
public void registerRealTimeObserver(RealTimeObserver realTimeObserver) {
this.realTimeObserver = realTimeObserver;
}
public void setRealTime(Task task, Integer realTime) {
task.setRealTime(realTime);
task.setRealDivEstim(new Float(task.getRealTime().floatValue() / task.getEstimTime().floatValue()));
notifyRealTimeObserver();
}
private void notifyRealTimeObserver() {
realTimeObserver.updateTimerLabel();
}
}
A to klasa testowa:
package tasksMonitorTest;
import tasksMonitor.TmModel;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
public class TmModelTest {
TmModel tmModel;
@Before
public void setUp() {
tmModel = new TmModel();
}
@After
public void tearDown() {
}
@Test
public void testSetRealTime() {
// ???
}
}
Pytania:
- czy do metody registerRealTimeObserver() też muszę napisać test ? Jeśli tak to jak to zrobić.
- jak napisać test do metody setRealTime() ? Wyczytałem, że metod typu get/set/is się nie testuje. Klasa Task ma tylko takie metody. Czy w związku z tym nie będę też musiał testować metod, w których będę uŻywał obiektu Task task i wywoływał operacje na tym tasku za pomocą set/get/is ? Co z prywatną metodą notifyRealTimeObserver() ?