Skip to content

mttkay/calculon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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();
    }
}

About

A testing DSL for Android views and activities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages