参考サイト
http://stackoverflow.com/questions/28560734/how-to-run-junit-springjunit4classrunner-with-parametrized
https://github.com/junit-team/junit4/wiki/parameterized-tests
概要
- RunWithにSpringJUnit4ClassRunner.classではなくParameterized.classを指定する
- BeforeでTestContextManagerをsetupする
- ParametersとParameterを書く
以上。
コード
@RunWith(Parameterized.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
public class SomeServiceTest {
@Autowired
SomeService service;
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ "hoge_", "xxx" },
{ "~~", "xxx" },
{ "af%", "xxx" },
{ "toooooooooooooooooooooooooooooooooooooooooooooooooooooolong", "xxx" }
});
}
// <= data[n][0]
@Parameter
String fString;
// <= data[n][1]
@Parameter
String fExp;
private TestContextManager testContextManager;
@Before
public void setupContext() throws Exception {
testContextManager = new TestContextManager(getClass());
testContextManager.prepareTestInstance(this);
}
@Test
public void testSome() {
assertThat(service.doSome(fString), is(fExp));
}
}