S2JUnit4 で Mock の自動織り込み

こんな感じでコミットしてみました。 > id:skimuraさん

@RunWith(Seasar2.class)
public class EmployeeDaoTest {

    private TestContext ctx;

    private EmployeeDao dao;

    public void before() {
        ctx.include("app.dicon");
    }

    @Mock(target = EmployeeDao.class, returnValue = "1")
    public void getCount() throws Exception {
        assertEquals(1, dao.getCount());
    }

    @Mock(target = EmployeeDao.class, pointcut = "getName", returnValue = "'hoge'")
    public void getName() throws Exception {
        assertEquals("hoge", dao.getName(1));
    }

    @Mocks( {
            @Mock(target = EmployeeDao.class, pointcut = "getCount", returnValue = "100"),
            @Mock(target = EmployeeDao.class, pointcut = "getName", throwable = "new IllegalArgumentException()") })
    @Test(expected = IllegalArgumentException.class)
    public void multiMocks() throws Exception {
        assertEquals(100, dao.getCount());
        dao.getName(-1);
    }

}

クラスかコンポーンネント名でコンポーネントをコンテナから取り出し、そのコンポーネントにMockInterceptorを引っ掛けます。
@Mockに指定できるものはMockInterceptorに指定できるものとだいたい同じ。
returnValueとthrowableにはOGNL式を書きます。
複数の指定が必要な場合は@Mocksで。