List<String> tm = new ArrayList<String>(); ..... public void thisMethodSetsTm(){ tm = getActiveTm(); } public List<String> getActiveTm(){ .... } public void setState() { for (String myTm : tm) { tc.send(myTm); } }
for (String myTm : tm) {
tc.send(myTm);
} List<String> listMock = mock(List.class);
Iterator<String> stringIterator = mock(Iterator.class);
when(listMock.iterator()).thenReturn(stringIterator);
when(stringIterator.hasNext()).thenReturn(true, true, true, false);
when(stringIterator.next()).thenReturn("a","b","c");
import java.util.Arrays; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @RunWith(PowerMockRunner.class) @PrepareForTest(TestIterator.class) public class IteratorTest { TestIterator classUnderTest; List<String> ids; @Before public void setup() { ids = Arrays.asList("a", "b"); classUnderTest = new TestIterator(); } @Test public void test() { PowerMockito.mockStatic(TestIterator.class); Mockito.when(TestIterator.createTm()).thenReturn(ids); classUnderTest.setState(); PowerMockito.verifyStatic(Mockito.times(1)); } }
import java.util.ArrayList; import java.util.List; public class TestIterator { static List<String> tm = TestIterator.createTm();
public void setState() { for (String myTm :
tm) {
System.out.println("Sending "+myTm);
}
}
public static List<String> createTm() {
return new ArrayList<String>();
}
}
--
You received this message because you are subscribed to the Google Groups "mockito" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mockito+u...@googlegroups.com.
To post to this group, send email to moc...@googlegroups.com.
Visit this group at http://groups.google.com/group/mockito.
For more options, visit https://groups.google.com/groups/opt_out.
public class TestIterator {
public TmInterface tm;
public TestIterator(TmInterface tm) {
this.tm = tm;
}
public void setState() {
for (String myTm : tm.getTm()) {
System.out.println("Sending " + myTm);
}
}
}public class TestIterator {
public TmInterface tm;
public TestIterator(TmInterface tm) {
this.tm = tm;
}
public void setState() {
for (String myTm : tm.getTm()) {
System.out.println("Sending " + myTm);
}
}
}Refactored out:import java.util.List; public interface TmInterface { public List<String> getTm(); }
import java.util.ArrayList; import java.util.List; public class TmImpl implements TmInterface { public TmImpl(){ } @Override public List<String> getTm() {
List<String> tm = new ArrayList<String>
();
tm.add("001000");
tm.add("002000");
return tm;
}
}import java.util.Arrays; import java.util.List; import org.junit.Before; import org.junit.Test;
import org.mockito.Mockito; public class IteratorTest { TestIterator classUnderTest; TmInterface tmClass;
List<String> ids; @Before public void
setup() {
tmClass = Mockito.mock(TmInterface.class);
ids = Arrays.asList("a", "b");
classUnderTest = new TestIterator(tmClass);
}
@Test
public void test() {
Mockito.when(tmClass.getTm()).thenReturn(ids);
classUnderTest.setState();
}
}