Skip to content
This repository has been archived by the owner on Nov 4, 2020. It is now read-only.

Latest commit

 

History

History
47 lines (36 loc) · 1.86 KB

README.markdown

File metadata and controls

47 lines (36 loc) · 1.86 KB

Calculon

"Calculon never does two takes!"

Calculon is a testing DSL for Google Android. It allows you to write activity tests and user story tests using cool stuff like this:

public class FooTest extends CalculonStoryTest<FooActivity> {

    public FooTest() {
        super("com.example", FooActivity.class);
    }

    public void testFooAndBarStuff() {

        // direct assertion on current activity
        assertThat().inPortraitMode();
        assertThat().viewExists(R.id.launch_bar_button);

        // assert specific condition on current activity
        assertThat().satisfies(new Predicate<Activity>() {
            public boolean check(Activity target) {
                return target.isTaskRoot();
            }
        });

        // a view assertion that performs an activity check
        Activity barActivity = assertThat(R.id.launch_bar_button).click().starts(BarActivity.class);
        // other activity objects are also testable
        assertThat(barActivity).inLandscapeMode();

        // a direct view assertion
        assertThat(R.id.button_2).isVisible();
        // a view assertion that performs a check on another view
        assertThat(R.id.button_2).click().implies(R.id.launch_bar_button).isGone();
        // assert a specific condition on another view
        assertThat(R.id.button_2).click().implies(R.id.launch_bar_button).satisfies(
            new Predicate<View>() {
                public boolean check(View view) {
                    return view.getVisibility() == View.GONE;
                }
            });

        // a key event assertion on an activity
        assertThat(barActivity).keyDown(KeyEvent.KEYCODE_X).finishesActivity();
    }
}