Adr*_*ian 34 android functional-testing
有谁知道如何测试活动上Toast消息的外观?
我正在使用类似于OP在此问题上发布的代码来测试从一个活动到下一个活动的程序流程.我还希望能够测试特定活动的Toast消息.
Com*_*are 22
有谁知道如何测试活动上Toast消息的外观?
你不能 - 抱歉.通过它,我的意思是没有办法问Android"嘿,是一个Toast显示?它看起来像什么?".
ubu*_*oid 12
嗯,居然还有就是测试敬酒的外观的可能性.只需创建Toast的子类(例如MyOwnToast)并在程序中使用此类而不是Toast.在此子类中,您可以覆盖show()方法以通知您正在显示Toast.
另外,您可以在ToastDatabase单例的种类中将Toast存储在ToastDatabase单例中,您可以在其中访问Toast,并且在它显示和销毁后也可以查看它(没有使用Toasts测试它,但我经常这样做结果意图使活动在销毁后保持可用于进一步测试 - 因此使用Toasts实现这一点应该没有问题.
注意:也许你必须克隆Toast对象或ToastDatabase的相应视图,因为它可能在Toast被销毁后为null.希望这可以帮助!
use*_*882 11
我们现在实际上可以使用测试Toast消息robolectric.以下示例是我们的团队现在如何做到这一点:
@Test
public void ccButtonDisplaysToast() throws NullPointerException {
Button ccRedButton = (Button) findViewById(R.id.cc_red);
cc_red.performClick(); --> this calls the actual onClickListener implementation which has the toast.
ShadowLooper.idleMainLooper(YOUR_TIME_HERE); --> This may help you.
assertThat(ShadowToast.getTextOfLatestToast().toString(), equalTo("TEST_YOUR_TEXT_HERE"));
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
我检查,以下工作:
if(someToast == null)
someToast = Toast.makeText(this, "sdfdsf", Toast.LENGTH_LONG);
boolean isShown = someToast.getView().isShown();
Run Code Online (Sandbox Code Playgroud)
您可以检查消息是否显示了吐司
ShadowToast.showedToast("expected message")
Run Code Online (Sandbox Code Playgroud)
如果您使用的是自定义 Toast
ShadowToast.showedToast("expected message", R.id.yourToastId)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14929 次 |
| 最近记录: |