Eclipse 4.5 で JUnit4.4がエラーになる

JUnitはバージョン 4.4をずっとつかいつづけていたが(Hamcrestを使いたくないので)
Eclipse4.5がバグっていて 4.6以上に上げる必要があるようだ。
Cannot run individual JUnit tests when importing Maven projects which uses JUnit < 4.6
https://bugs.eclipse.org/bugs/show_bug.cgi?id=479730


うーん、、、今回はEclipse 4.5の評価のためなのでしょうがないのでバージョンをあげた。
pomからhamcrestのexclusionを削除する。
JUnit 4.5以上にするときには、org.hamcrest がないとEclipseJUnit実行時にエラーになるので。
Type Filterに org.hamcrest.* を足した。
いつも使うecliseのtemplateを久しぶりに修正。

org.eclipse.jdt.ui.typefilter.enabled=com.ibm.*;com.sun.*;sun.*;sunw.*;java.applet.*;java.awt.*;javax.swing.*;org.omg.*;java.sql.Date;org.hamcrest.*;

assrtThat, Matcher、Spec系は覚えることが多すぎて嫌い。
ちょっとさわらなくなったら全くコードが読めなくなる。
基本assertEqualsだけで頑張る。テストコードのテスト書くはめになったら意味がない。
Groovy の PowerAsset をどの言語も見習ってほしい。やはりJavaのテストは全部Groovyで書くべきなのかなー


Eclipseはcode tempalteに以下を足していて基本これで事足りている。

<template autoinsert="false" context="java-statements" deleted="false" description="assertEquals。equalsメソッドで比較" enabled="true" id="org.eclipse.jdt.ui.templates.ae_tag" name="ae">${staticImport:importStatic('org.junit.Assert.*')}assertEquals(${cursor}, );</template>
<template autoinsert="false" context="java-statements" deleted="false" description="assertTrue" enabled="true" id="org.eclipse.jdt.ui.templates.at_tag" name="at">${staticImport:importStatic('org.junit.Assert.*')}assertEquals(true, ${cursor});</template>
<template autoinsert="false" context="java-statements" deleted="false" description="assertFalse" enabled="true" id="org.eclipse.jdt.ui.templates.af_tag" name="af">${staticImport:importStatic('org.junit.Assert.*')}assertEquals(false, ${cursor});</template>
<template autoinsert="false" context="java-statements" deleted="false" description="assertNull。assertEqualsだとnullの比較はできない。" enabled="true" id="org.eclipse.jdt.ui.templates.an_tag" name="an">${staticImport:importStatic('org.junit.Assert.*')}assertNull(${cursor});</template>
<template autoinsert="false" context="java-statements" deleted="false" description="assertNotNull。assertEqualsだとnullの比較はできない。" enabled="true" id="org.eclipse.jdt.ui.templates.ann_tag" name="ann">${staticImport:importStatic('org.junit.Assert.*')}assertNotNull(${cursor});</template>

# assertSame, assertNotSame もたしているが基本ほとんど使わない。


なんてことをかんがえていたらJUnit5が心を入れ替えるようだ。。。。
https://github.com/junit-team/junit-lambda/wiki/Core-Principles#minimize-dependencies-especially-third-party


Goのテストみたいにassertすらないってのはやり過ぎだが、
必要なのはJUnit3+TestCaseを継承しないでよい+Annotaionでメタを表現+assertのLambda対応なんだと思う。