Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
50 lines (34 sloc) 1.61 KB

Testory makes your tests human-readable by using given-when-then idiom advised by Behavior Driven Development .

With Testory you can decorate your code adding given, when and then keywords, where then works like junit's assertTrue.

    given(list = new ArrayList<String>());
    when(list.add("element"));
    then(!list.isEmpty());

You can assert value returned in when ...

    given(list = new ArrayList<String>());
    given(list.add("element"));
    when(list.get(0));
    thenReturned("element");

or assert that exception was thrown.

    given(list = new ArrayList<String>());
    when(list).get(0);
    thenThrown(IndexOutOfBoundsException.class);

You can stub a mock to return Object or throw Throwable ...

    given(list = mock(List.class));
    given(willReturn(object), list).get(1);
    given(willThrow(new IndexOutOfBoundsException()), list).get(2);

and verify call.

    given(output = mock(OutputStream.class));
    given(filterOutput = new FilterOutputStream(output));
    when(filterOutput).close();
    thenCalled(output).close();

Tests can be even more compact using matchers ...

    given(list = new ArrayList<String>());
    given(list.add("element"));
    when(list.clone());
    thenReturned(not(sameInstance(list)));

or handy macros.

    given(list = new ArrayList<String>());
    givenTimes(5, list).add("element");
    when(list.size());
    thenReturned(5);

See Documentation for complete list of features.

You can’t perform that action at this time.