当我有异步方法,线程和循环时,如何使用mockito模拟类USBConnection? 这个原型背后的基本思想是USBConnection应该每秒在Arduino.class中以可变速度发送数据,Arduino每秒打印出值。
USBConnection类是我想要模拟的。任何有关实现此目的的提示和指南都表示赞赏。
public abstract class Arduino {
private static int speed;
public static void setSpeed(int a) {
speed = a;
}
public static int getSpeed(){
return speed;
}
public static void printSpeed(){
System.out.println(speed);
}
public static void main(String[] args) throws InterruptedException {
USBConnection usb = new USBConnection();
Thread usbThread = new Thread(usb);
usbThread.start();
while(true){
printSpeed();
Thread.sleep(1000);
}
}}
界面
interface USB {
public void sendSpeed(int a); }
我们需要模拟的类:
class USBConnection implements Runnable, USB {
public void sendSpeed(int a){
Arduino.setSpeed(a);
}
@Override
public void run() {
int i = 0;
while(true){
sendSpeed(i);
i++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}}
答案 0 :(得分:0)
基于一些反复试验和Christoper的评论,我决定不以上述方式使用mockito。
我们重新设计了软件架构,并且不会使用循环或线程来模拟类。