我有功能测试用于Spinner的ItemSelectedPosition我想进行单元测试 这是我想测试的功能的例子
public boolean isGenderValid() {
return (genderSpinner.getSelectedItemPosition() != 0);
}
答案 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());
}