zoukankan      html  css  js  c++  java
  • struts+spring+ibatis:junit4.4测试总结

    控制台抛出的异常:

    log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    java.lang.NoSuchMethodError: org.junit.runner.notification.RunNotifier.testAborted(Lorg/junit/runner/Description;Ljava/lang/Throwable;)V
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:155)
    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:59)
    at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:52)
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
    at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:50)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:97)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

    对于上述信息进行如下处理

    1.配置log4j.properties (注:log4j.properties的配置很重要,会在控制台打印出详细的信息,对调试及其有利)

    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = %d %p [%c] - %m%n
    log4j.rootLogger = INFO,stdout

    log4j.logger.com.ibatis = DEBUG

    log4j.logger.org.springframework.test.context.junit4.SpringJUnit4ClassRunner = DEBUG
    2.根据控制台打印的日志,针对自己的项目做详细调试 (注:因为项目、需求不同,所以输出结果不同,故不做详细介绍)

    个人总结(JUnit4.4):

    1.对于项目中引入其它项目,调试尽可能放在Controller层。Controller层中的配置文件会引入Service层、Dao层的各个配置文件,从而会避免配置文件不全带来的错误。

    2.配置log4j.properties在控制台打印详细日志

    3.junit测试类,及引入配置文件:

    package com.iengine.test;

    import java.util.UUID;

    import javax.annotation.Resource;

    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import org.springframework.test.context.transaction.TransactionConfiguration;
    import org.springframework.transaction.annotation.Transactional;

    import com.iengine.base.vo.MatchCommandVO;
    import com.iengine.clientcommand.service.ClientCommandService;

    /**
    * @description JUNIT Test
    * @author BrinPage
    * @date 2012-08-23
    */
    @RunWith(SpringJUnit4ClassRunner.class)
    @Transactional
    @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback =false)
    @ContextConfiguration(
      locations={"classpath:conf/spring/spring-ibatis.xml",
      "classpath:conf/spring/spring-aspect-datasource.xml",
      "classpath:conf/spring/spring-yuyincloud-dao.xml",
      "classpath:conf/spring/spring-yuyicloud-service.xml"}
    )
    public class ClientCommandServiceTest extends AbstractTransactionalJUnit4SpringContextTests {

      @Resource
      private ClientCommandService clientCommandService;
      /* (non-Javadoc)
      * @see junit.framework.TestCase#setUp()
      */
      @Before
      public void setUp() throws Exception {
      }

      @After
      public void tearDown() throws Exception {
      }

      /**
      * Test method for {@link com.iengine.clientcommand.service.ClientCommandService#insertCommand(com.iengine.base.vo.MatchCommandVO)}.
      */
      @Test
      public void testInsertCommand() {
        MatchCommandVO vo = new MatchCommandVO();
        UUID uuid = UUID.randomUUID();
        vo.setId(uuid.toString());
        vo.setCommand("command0");
        vo.setCommandName("命令0");
        vo.setCommandUrl("www.google.com");
        vo.setCommandStyle("0");
        vo.setAudit("0");
        vo.setState("1");
        vo.setFlag("1");
        vo.setAppId("20f41bf8-b6fe-4ae5-99bc-56344f21de66");
        try {
          clientCommandService.insertCommand(vo);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

      /**
      * Test method for {@link com.iengine.clientcommand.service.ClientCommandService#insertAppCommand(com.iengine.base.vo.MatchCommandVO)}.
      */
      @Test
      public void testInsertAppCommand() {
      }

    }

  • 相关阅读:
    工作的价值
    面对伤害该不该回击
    建议
    利用私有的API获得手机上所安装的所有应用信息(包括版本,名称,bundleID,类型)
    你必须知道的HTTP错误
    静态库制作
    MDM证书申请的流程
    IOS客户端实现RSA加密
    获得appstore里面app的最新的版本信息,进行版本更新
    C语言实现简单php自定义扩展
  • 原文地址:https://www.cnblogs.com/Jiphen/p/2653250.html
Copyright © 2011-2022 走看看