...
Code Block | ||||
---|---|---|---|---|
| ||||
/** * Checks the construction of a FlowId object. */ @Test public void testConstruction() { final long flowIdValue = 7777L; final FlowId flowId = FlowId.valueOf(flowIdValue); assertThat(flowId, is(notNullValue())); assertThat(flowId.value(), is(flowIdValue)); } |
Referencing Private Data
Sometimes when writing a test, you'll need to access data from a class that does not have a public API to access the data. In ONOS, we try to not add interfaces only used by test code. Instead, we have utility methods that use the Java reflection API to access this private data.
Code Block | ||||
---|---|---|---|---|
| ||||
import org.onlab.junit.TestUtils;
@Test
public void testLeaderEvents() throws Exception {
final ObjectiveTracker tracker = new ObjectiveTracker();
final SetMultimap<LinkKey, IntentId> intentsByLink =
TestUtils.getField(tracker, "intentsByLink");
assertThat(intentsByLink.size(), is(0));
} |
Mocking
Mocking is a useful strategy for limiting the interaction between your code under test and other modules that are required to satisfy dependencies. There are several strategies that may be used for mocking, two that are used inside of ONOS are described here.
...