我开发了一个应用程序,并一直在用monkey来测试它。
我的应用程序有一个主屏幕和一个菜单选项,可以打开首选项屏幕。不过,我意识到的一件事是,一旦猴子打开我的偏好屏幕,它往往会在偏好活动中停留很长一段时间。它唯一退出的时间是当它重新启动我的整个活动时,一旦它进入首选项活动,它就会再次停留在那里,在不退出的情况下大力测试我的首选项活动。
这导致我的偏好活动得到一个完整的锻炼从猴子,但我的主要活动没有得到太多的关注。我知道猴子的行为是完全随机的,但这可能是因为我的偏好行为有问题吗?猴子的反复测试表明这种行为是一致的。
下面是我的首选项活动的代码:
public class MyPreferences extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.my_preference);
}
}
以及我的清单声明:
<activity android:name="com.myapp.android.testapp.MyPreferences"
android:label="@string/preference_activity_title"
android:configChanges="orientation|keyboard|keyboardHidden"
android:screenOrientation="portrait"/>
哦,我用以下代码运行monkey:
adb shell monkey -p com.myapp.android.testapp -v 100000
最佳答案
“后退”按钮可能只有一条路径。因此,在猴子撞到后退按钮之前,猴子将测试你的PreferenceActivity
。
解决这个问题的一种方法是将PreferenceActivity
添加到您要测试的主要活动中(除了CATEGORY_MONKEY
之外),并不时使用the CATEGORY_LAUNCHER
switch。这将使猴子保持在选定的活动中。只需将该类别从-c
中去掉。
您可以尝试增加PreferenceActivity
,这将增加背部被压的几率,尽管这会影响您的所有活动,而不仅仅是您的--pct-syskeys
。