Testowanie

0

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:

  1. czy do metody registerRealTimeObserver() też muszę napisać test ? Jeśli tak to jak to zrobić.
  2. 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() ?
0

napisalem taki test:

	@Test
	public void testSetRealTime() {
		System.out.println("setRealTime");

		ITask itask = createMock(ITask.class);
		Integer estimTime = new Integer(123);
		Integer realTime = new Integer(456);
		itask.setRealTime(realTime);
		itask.setRealDivEstim(new Float(realTime.floatValue() / estimTime.floatValue()));
		RealTimeObserver rto = createMock(RealTimeObserver.class);

		replay(itask);
		Task task = new Task("nazwa", "opis", 123);
		tmModel.registerRealTimeObserver(rto);
		tmModel.setRealTime(task, realTime);
		verify(itask);
	}

i test nie przechodzi:

Expectation failure on verify:
	setRealTime(4560: expected: 1, actual:0
	setRealDivEstim(3.707317): expected: 1, actual:0

Co robię źle ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1