3. XML 파싱 단위 테스트를 위한 Mock 생성때 큰웃음(?)을 선사하는 DOMElement
스프링도 사용하는 dom4j에 들어있음.. Thanx
/**
* Test do parse element bean definition builder.
*/
public void testDoParseElementBeanDefinitionBuilder() {
MockControl control = MockClassControl.createControl(BeanDefinitionBuilder.class);
BeanDefinitionBuilder builder = (BeanDefinitionBuilder) control.getMock();
MockElement mockElement = new MockElement("service");
control.expectAndDefaultReturn(builder.addConstructorArgValue("value of id"), builder);
control.expectAndDefaultReturn(builder.addConstructorArgValue("value of name"), builder);
control.expectAndDefaultReturn(builder.addConstructorArgReference("value of ref"), builder);
control.expectAndDefaultReturn(builder.addConstructorArgValue("value of description"), builder);
control.expectAndDefaultReturn(builder.addConstructorArgValue("value of available"), builder);
control.expectAndDefaultReturn(builder.addConstructorArgValue("value of not-available-message-id"), builder);
control.replay();
serviceBeanDefinitionParser.doParse(mockElement, builder );
control.verify();
}
class MockElement extends DOMElement{
public MockElement(String name) {
super(name);
setAttribute("id", "value of id");
setAttribute("name", "value of name");
setAttribute("ref", "value of ref");
setAttribute("description", "value of description");
setAttribute("available", "value of available");
setAttribute("not-available-message-id", "value of not-available-message-id");
}}
2. JUnit
public void testAssertEqualsOnDoubleHelper() throws Exception {
new UnitTests().assertEquals("정확하게 같은 값이 아닙니다.", 0.0000D, 0.0000D);
new UnitTests().assertEquals("정확하게 같은 값이 아닙니다.", 0.0000D, 0.0000f);
new UnitTests().assertEquals("정확하게 같은 값이 아닙니다.", 1.0000D, 1.0000f);
try{
new UnitTests().assertEquals(1.000001D, 1.0000f);
fail("delta가 존재합니다.");
}catch (AssertionFailedError e) {
// junit은 사용자가 지정한 오류 메시지 뒤에 대괄호를 붙이고 그 안에 expected와 actual 값을 문자열로 붙인다.
assertTrue(e.getMessage().startsWith("완벽하게 동일한 값은 아닙니다."));
}
}
1. abstract 클래스 테스트하기
public void testAutowireMode() throws Exception {
assertEquals("디폴트 Autowire 모드가 AUTOWIRE_BY_NAME이 아닙니다.", AutowiredIntegrationTests.AUTOWIRE_BY_NAME,
new MyIntegrationTests().getAutowireMode());
}
class MyIntegrationTests extends AutowiredIntegrationTests{}













이올린에 북마크하기
이올린에 추천하기
