无法模拟GAE用户服务

时间:2013-05-12 07:57:52

标签: google-app-engine automated-tests junit4


我试图模拟用于编写单元测试的gae用户服务,但无法使用以下代码。

我的测试课程如下。

public class AuthenticationTest {

    private final LocalServiceTestHelper helper =
        new LocalServiceTestHelper(new LocalUserServiceTestConfig())
            .setEnvIsAdmin(true).setEnvIsLoggedIn(true)
            .setEnvEmail("test@example.com");

    @Before
    public void setUp() {
        helper.setUp();
    }

    @After
    public void tearDown() {
        helper.tearDown();
    }

    @Test
    public void testIsAdmin() {
        UserService userService = UserServiceFactory.getUserService();
        assertTrue(userService.isUserAdmin());

        String email = userService.getCurrentUser().getEmail();
        assertEquals(email, "test@example.com");
    }
}

我发现userService.getCurrentUser()总是返回null。

大多数代码都来自developers.google.com中的示例。我添加的唯一内容是调用.setEnvEmail(“test@example.com”)

任何帮助将不胜感激。

谢谢,
沙迪亚

1 个答案:

答案 0 :(得分:2)

为了模拟电子邮件,还需要模拟auth域,只需添加

.setEnvAuthDomain("example.com");

你的助手初始化或@Before方法初始化后它会正常工作。

希望有所帮助