2017-03-07 64 views
3

我想测试一个片段的方法,但这种方法我称之为吐司:如何忽略JUnit测试中的吐司?

Toast.makeText(getActivity(), getString(R.string.signs), Toast.LENGTH_SHORT).show(); 

现在我想测试使用JUnit和Powermockito的方法。为此我想忽略烤面包。我想这样的:嘲笑面包和ignor toast.show()

Toast toastMock = mock(Toast.class); 
doReturn(toastMock).when(Toast.makeText(any(Activity.class), anyString(), Toast.LENGTH_SHORT)); 
doNothing().when(toastMock).show(); 

但我总是得到一个RuntimeException,因为我把吐司,而无需创建一个新的敬酒对象。我怎样才能绕过这个问题?

+0

你可以添加完整的测试用例吗?与PowerMockito设置以及 –

+0

你试图嘲笑一个静态方法,你要么必须将静态调用包装到一个非静态类,然后你可以模拟,或嘲笑静态方法,你可以在这里找到帮助http://stackoverflow.com/questions/10583202/powermockito-mock-single-static-method-and-return-object – zsmb13

回答

0

用负责显示Toast的方法编写外部类,将其注入fragment并嘲笑此类行为。这可能是一种静态方法,因为您使用PowerMockito

如何注入?使用DaggerToothpick