我想在我的单元测试中实现用户交互,我希望用户输入我需要的一些信息,以便在应用中登录他,这是我写的:
@Before
public void setup() {
mActivity = Robolectric.buildActivity(MainActivity.class).create().get();
mKeyboard = new Scanner(System.in);
}
@Test
public void userInteraction() {
System.out.println("Enter Username and press Enter : ");
mUsername = mKeyboard.nextLine();
System.out.println("Enter Password and press Enter : ");
mPassword = mKeyboard.nextLine();
System.out.println("Trying to login...");
}
我得到的内容:我看到消息"输入用户名并按Enter:"它看起来线应用实际上正在等待用户输入它,但是,由于某种原因,应用程序根本没有对键盘作出反应。如果能以某种方式提供帮助,我会使用AndroidStudio。
答案 0 :(得分:2)
在这种情况下,我建议您编写UI测试(例如使用Espresso Espresso Test Recording:https://developer.android.com/studio/test/espresso-test-recorder.html)。
答案 1 :(得分:0)
您的String data = "Users Input";
System.setIn(new ByteArrayInputStream(data.getBytes()));
正在等待用户输入内容。
您的问题是模拟用户条目。
类似的问题已经回答here,建议使用类似的东西:
$jsonArray = json_decode($json, true);
$arrayStatus = array();
foreach ($jsonArray as $key => $value) {
$key; $inc = 0 ;
for($i=0;$i<count($value);$i++){
$patient_id = $value[$i]['gid'];
$s = $inc++;
//Avoid array indexs
$arrayStatus[$patient_id][$key][] = ['status' => "Success", 'test_id' => 'xxx'];
}
}
$results = array();
$results['upload_status'] = $arrayStatus;
echo $resArr = json_encode($results);
我希望这会有所帮助。