2013-05-12 75 views
1


我想模拟编写单元测试的gae用户服务,并且无法获得以下代码来工作。无法模拟GAE用户服务

我的测试课程如下。

public class AuthenticationTest { 

    private final LocalServiceTestHelper helper = 
     new LocalServiceTestHelper(new LocalUserServiceTestConfig()) 
      .setEnvIsAdmin(true).setEnvIsLoggedIn(true) 
      .setEnvEmail("[email protected]"); 

    @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, "[email protected]"); 
    } 
} 

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

大部分代码取自developers.google.com中的示例。我添加的唯一的东西是呼叫.setEnvEmail(“[email protected]”)

任何帮助,将不胜感激。

感谢,
沙迪亚

+0

您的'@ Before'方法正在运行吗? – 2013-05-12 08:20:03

+0

是的,我把一个断点,并确认@Before方法正在运行。 – Sathya 2013-05-12 09:14:45

回答

2

,以模拟的电子邮件中,auth域也需要被嘲笑,只需添加

.setEnvAuthDomain("example.com"); 

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

希望它有帮助

+0

非常感谢。这工作。 – Sathya 2013-05-12 21:57:47