我正在为一个 android 应用程序编写一个 ViewModel,它应该实现并启动一个 CountDownTimer 以便不时更新一些 UI。
我最近开始实践 TDD,我想知道我应该做出哪些架构决策才能使 ViewModel 可测试(我希望测试快速运行而不依赖于实际的计时机制)。我无法提供 CountDownTimer 作为依赖项,因为它是在 ViewModel 本身中实现的抽象类,所以我“不知道”要提供什么实现。
一般来说,在使用具有严格约束和不可测试的框架代码的框架时,编写测试的最佳实践是什么?
这是我目前拥有的代码。你如何使它可测试?
import android.arch.lifecycle.ViewModel;
import android.os.CountDownTimer;
class MyViewModel extends ViewModel {
private MyView myView;
public void init(MyView myView) {
this.myView = myView;
new CountDownTimer(0, 1000) {
@Override
public void onTick(long l) {
myView.updateUi(l);
}
@Override
public void onFinish() {
myView.updateUiFinished();
}
}.start();
}
public interface MyView {
void updateUi(long l);
void updateUiFinished();
}
}
Run Code Online (Sandbox Code Playgroud) 我有兴趣为我的整个二进制图像找到坐标(X,Y),而不是每个组件的CoM分别找到.我怎样才能有效地做到这一点?我想使用regionprops,但找不到正确的方法.