как макет actionContext - PullRequest
       8

как макет actionContext

0 голосов
/ 05 апреля 2019

ActionContext имеет значение null, когда я тестирую, я просто хочу знать, как имитировать или что-то еще для решения проблемы?

что я тестирую:

ActionContext ctx= ActionContext.getContext(); 
session = ctx.getSession();

// использовать сеанс для передачи значения в jsp

public class JUnitTestBase extends 
AbstractTransactionalJUnit4SpringContextTests{

public static XmlWebApplicationContext context = null;
//static MockActionProxy request;
public static String[] CONFIG_FILES = { "classpath*:applicationContext.xml" };
public JUnitTestBase() {
System.out.println("JUnitTestBase");
}

@BeforeClass
public static void setUp() {
System.out.println("Test start…");
context = new XmlWebApplicationContext();
context.setConfigLocations(CONFIG_FILES);
//ApplicationContext context =new ClassPathXmlApplicationContext("file:src/applicationContext-*.xml");
MockServletContext msc = new MockServletContext();
context.setServletContext(msc);
context.refresh();
msc.setAttribute(
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
context);
}

@AfterClass
public static void tearUp() {
System.out.println("Test end!");
}
}

public class BloggerServiceTest extends JUnitTestBase{

private IBloggerService bloggerService;

public BloggerServiceTest() {
    bloggerService=(IBloggerService) context.getBean("BloggerService");
}

@Test
public void testLogin() throws Exception{
    IBloggerDAO bloggerDao=createMock(IBloggerDAO.class);
    BloggerBasic bloggerBasic=new BloggerBasic();
    bloggerBasic.setBloggerName("123");
    bloggerBasic.setBloggerPasswd("123");
    expect(bloggerDao.checkNameAndPasswd(anyObject(String.class), anyObject(String.class))).andReturn(new BloggerBasic());
    replay(bloggerDao);  
    assertEquals(true, bloggerService.login(bloggerBasic));  
    verify(bloggerDao); 
}

}
...