【发布时间】:2016-05-16 04:50:04
【问题描述】:
我一直在网上搜索,但无法了解如何使用 MVVM 更好地进行测试。我想拥有一个与视图交互的 viewModel,但我不知道如何使用 MVVM 编写好的测试用例。我已经在 Android 中有以下 ViewModel:
public class ViewModel extends BaseObservable {
private long countDownTime;
private MyCountDownTimer mCountDownTimer;
private final String TAG = getClass().getSimpleName();
@Bindable
public long getCountDownTime() {
return countDownTime;
}
public void setCountDownTime(long countDownTime) {
this.countDownTime = countDownTime;
notifyPropertyChanged((int) BR.countDownTime);
Log.d(TAG,"prime tick:"+countDownTime);
}
public void startCounting(Long milli){
mCountDownTimer.restartTimer(milli);
}
}
然后我有一个使用它的 xml 视图。我还有一个实际上将 xml 绑定到该视图的活动。此活动如下所示:
public class MainActivity extends FragmentActivity {
CountdownBinder mCountdownBinder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
mCountdownBinder = DataBindingUtil.setContentView(this, R.layout.activity_main);
//Lets reference our textview just for fun
mCountdownBinder.tvGreen.setText("initial text");
ViewModel viewModel = ViewModel.instance();
//now tell databinding about your viewModel below
mCountdownBinder.setViewModel(viewModel);
viewModel.startCounting(200000L);
}
}
现在我很困惑如何让测试变得更好。我读过它,但我需要一个真实世界的例子。此代码来自blog here(如果重要)。
显然我可以更轻松地测试我的单元测试,对吧?我只能在 MVVM 中测试 viewModel 吗?主要需要测试什么?
【问题讨论】:
标签: android wpf mvvm data-binding