小编Sha*_*raf的帖子

无法将PowerMock与Robolectric一起使用

正如在这个环节讨论- https://groups.google.com/group/powermock/browse_thread/thread/25ba2b85d9e576f4,我试图用PowerMock与Robolectric嘲笑一个静态方法。但这会引发一些难以理解的异常。

下面是我的测试课:

package net.therap.passreset.service;

import android.content.Context;
import com.xtremelabs.robolectric.Robolectric;
import net.therap.passreset.util.ConnectivityStatus;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.rule.PowerMockRule;
import roboguice.RoboGuice;
import roboguice.activity.RoboActivity;
import roboguice.test.RobolectricRoboTestRunner;

import static org.easymock.EasyMock.expect;
import static org.powermock.api.easymock.PowerMock.mockStatic;

/**
 * @author sharafat
 */
@RunWith(RobolectricRoboTestRunner.class)
@PrepareForTest(ConnectivityStatus.class)
public class TherapWebServiceClientTest {
    @Rule
    public PowerMockRule rule = new PowerMockRule();

    private Context context = new RoboActivity();
    private TherapWebServiceClient therapWebServiceClient;

    @Before
    public void setUp() throws Exception {
        RoboGuice.setBaseApplicationInjector(Robolectric.application, RoboGuice.DEFAULT_STAGE);
        therapWebServiceClient = RoboGuice.getInjector(context).getInstance(TherapWebServiceClient.class);
        mockStatic(ConnectivityStatus.class);
    }

    @After …
Run Code Online (Sandbox Code Playgroud)

android powermock robolectric

5
推荐指数
1
解决办法
3037
查看次数

标签 统计

android ×1

powermock ×1

robolectric ×1