要正确实现Android中的JUnit测试,Presenter与视图的关系,可以按照以下步骤进行:
public class MyPresenter {
private MyView mView;
public MyPresenter(MyView view) {
mView = view;
}
public void doSomething() {
// 执行业务逻辑
boolean result = // 业务逻辑结果
// 通知视图更新
mView.updateView(result);
}
}
public interface MyView {
void updateView(boolean result);
}
public class MainActivity extends AppCompatActivity implements MyView {
private MyPresenter mPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建Presenter实例
mPresenter = new MyPresenter(this);
// 调用Presenter方法
mPresenter.doSomething();
}
@Override
public void updateView(boolean result) {
// 更新视图
// ...
}
}
@RunWith(MockitoJUnitRunner.class)
public class MyPresenterTest {
@Mock
private MyView mView;
private MyPresenter mPresenter;
@Before
public void setUp() {
mPresenter = new MyPresenter(mView);
}
@Test
public void testDoSomething() {
// 模拟业务逻辑结果
boolean expectedResult = true;
// 调用Presenter的方法
mPresenter.doSomething();
// 验证交互是否正确
verify(mView).updateView(expectedResult);
}
}
在测试中,使用Mockito框架模拟视图对象,并验证Presenter是否正确调用了视图的方法。
通过以上步骤,可以正确实现Android中Presenter与视图的JUnit测试。