如何进行单元测试功能使用旋转器选择的位置?

时间:2017-02-01 09:22:57

标签: android unit-testing

我有功能测试用于Spinner的ItemSelectedPosition我想进行单元测试 这是我想测试的功能的例子

public boolean isGenderValid() {
    return (genderSpinner.getSelectedItemPosition() != 0);

}

1 个答案:

答案 0 :(得分:2)

您可以通过创建Spinner类的模拟并将其注入要测试的类来实现。

例如:

public class SpinnerStub extends Spinner {
     public int getSelectedItemPosition() {
          return 1;
     }
}

然后在测试中创建SpinnerStub并将其设置为要测试的类的genderSpinner。 我不熟悉Android控件,但我认为还有一种设置所选项目的方法。您也可以在Stub中覆盖它,并使用它让getSelectedItemPosition()返回您之前设置的值。

实际的单元测试可能如下所示:

@Test
public void whenSelectionIsValid_isGenderValidShouldReturnTrue() {
      YourClass sut = new YourClass();
      SpinnerStub spinnerStub = new SpinnerStub();
      sut.setSpinner(spinnerStub);

      assertTrue(sut.isGenderValid());
}