IDEA2020.3 junitテストクラスの自動生成に関する問題


  • 自動生成されたテストクラスで他の方法をテストし続けると、実行可能なフラグが現れていないことに気づきましたが、私が独走して実行したとき、予想外に報告されず、テスト方法が見つからないことを示しました.
    java.lang.Exception: No tests found matching Method QueryBlogIf(com.xbh.mapper.BlogMapperTest) from org.junit.internal.requests.ClassRequest@506e1b7
    
  • この時私はとても悩んで、前にこの問題に出会ったことがなくて、検査はこの類がTestCase
  • を継承したことを発見しました
    public class StudentMapperTest extends TestCase(){}
  • ではTestCaseは何をしているのか、前と何が違うのか
  • @Test注記とTestCaseの違い
    extends TestCase:Junit 3の方式で、方法名はtestを接頭辞とする
    @Test注記:Junit 4の方式で、方法上は注記@Test
    p.s.:Junit 4互換性のためjarパッケージにパッケージされているJunit 3のコード
        @Test
        public void QueryBlogIf(){
         
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
            Map map=new HashMap();
    //        map.put()
            List<Blog> blogs = mapper.queryBlogIF(map);
            for (Blog blog : blogs) {
         
                System.out.println(blog);
            }
            sqlSession.close();
        }
    

    資料を検索したところ,メソッドQueryBlogIfはテスト用例として実行できず,注釈@Testを使用してもJunit 3の使用仕様に合致しないため,@Test注釈は実際には有効ではないことが分かった.
    だから!!Junit 4の注記が有効でない場合は、TestCaseを継承してJunit 3方式のテストを使用したためかどうかを確認できます.