我正試圖對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