我正试图对Android-DDP库进行junit测试。对流星,Android-DDP库的Junit测试
要初始化流星对象,我们需要一个对我能够使用Robolectric实现的android上下文的引用。但是web-sockets可能正在与另一个线程上的服务器通话,因为这些线程不会调用回调方法,并且测试方法正在结束。
我用netstat来检查android客户端是否正在尝试通信。它显示各种ping/pong消息。所以,是的,它试图与服务器通话。
我也经历了这个教程, Android AsyncTask testing with Android Test Framework。这个告诉如何在UI线程上处理网络。但没有什么似乎是对的
的示例代码,我曾是:
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
@RunWith(RobolectricGradleTestRunner.class)
public class MainActivityTest {
private MainActivity activity;
private Meteor meteor;
private String globalUrl = "ws://10.0.3.222:3000/websocket";
@Before
public void setup() {
activity = Robolectric.setupActivity(MainActivity.class);
meteor = new Meteor(activity, globalUrl);
meteor.reconnect();
/*
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
*/
}
@Test
public void validateMeteorIsConnected() {
assertTrue(meteor.isConnected());
}
}
任何帮助将是明显的。提前致谢。
你已经谈过你正在使用的图书馆,你还谈到了你认为是你的问题的原因。您还说过如何确保应用程序正在与服务器通话。但是你没有提供任何有关你的实际测试的信息?另外,您还没有分享您的代码,因为测试可能会导致错误。当他们甚至不知道你的流星应用正在做什么时,你不能猜测你的问题是什么?你的Android应用正在做什么?另外如果他们没有你的代码的部分来仔细检查,他们如何发现错误? – Ishan
嘿,我正在进行图书馆及其方法的测试。 我已经用我的源代码更新了这个问题。 我的Android应用程序对库有简单的实现,我必须为Android DDP库执行简单的junit测试。 – cprakashagr
尝试使用MeteorSingleton而不是新的Meteor对象。 – Ishan