使用 PowerMock 测试 Twitter4J
Testing Twitter4J with PowerMock
我正在尝试使用 PowerMock 模拟以下代码
Twitter twitter = TwitterFactory.getSingleton();
RequestToken requestToken = twitter.getOAuthRequestToken();
这是我的单元测试的开始
@RunWith(PowerMockRunner.class)
@PrepareForTest(TwitterFactory.class)
public class AuthorisationHelperTest {
@Test
public void testMain() throws TwitterException {
// Arrange
PowerMockito.mockStatic(TwitterFactory.class);
Twitter mockTwitter = new Twitter();
Mockito.when(TwitterFactory.getSingleton()).thenReturn(mockTwitter);
但是我收到一条错误消息,提示我无法实例化 Twitter 类型。我想我一定是在以错误的方式思考这个问题。有什么建议吗?
以下是声明和实例化 Twitter
对象的新实例的方法:
Twitter twitter = TwitterFactory.getSingleton();
如果您不能实例化一个 Twitter
class,可能是它有一个不可见的构造函数,并且只能通过工厂获得。
您可能想要做的是提供 Twitter
的模拟。
Twitter twitter = mock(Twitter.class);
我正在尝试使用 PowerMock 模拟以下代码
Twitter twitter = TwitterFactory.getSingleton();
RequestToken requestToken = twitter.getOAuthRequestToken();
这是我的单元测试的开始
@RunWith(PowerMockRunner.class)
@PrepareForTest(TwitterFactory.class)
public class AuthorisationHelperTest {
@Test
public void testMain() throws TwitterException {
// Arrange
PowerMockito.mockStatic(TwitterFactory.class);
Twitter mockTwitter = new Twitter();
Mockito.when(TwitterFactory.getSingleton()).thenReturn(mockTwitter);
但是我收到一条错误消息,提示我无法实例化 Twitter 类型。我想我一定是在以错误的方式思考这个问题。有什么建议吗?
以下是声明和实例化 Twitter
对象的新实例的方法:
Twitter twitter = TwitterFactory.getSingleton();
如果您不能实例化一个 Twitter
class,可能是它有一个不可见的构造函数,并且只能通过工厂获得。
您可能想要做的是提供 Twitter
的模拟。
Twitter twitter = mock(Twitter.class);