EasyMockに触れる(2)
EasyMockで例外のテスト
テストプログラム
package sample.easymock; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import static org.easymock.EasyMock.expectLastCall; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import junit.framework.TestCase; public class SampleDAOTest extends TestCase { private Connection conMock; private Statement stMock; private ResultSet rsMock; protected void setUp() { // ①Mockオブジェクトの生成 conMock = createMock(Connection.class); stMock = createMock(Statement.class); rsMock = createMock(ResultSet.class); } /* * Test method for 'sample.easymock.SampleDAO.selectSample(Connection, String)' */ public void testSelectSample2() throws Exception { // ②期待値の設定 expect(conMock.createStatement()).andReturn(stMock); expect(stMock.executeQuery("select * from sample")).andThrow(new SQLException("DB接続でえらー!!!")); replay(conMock); replay(stMock); // ③モックテストの実施 SampleDAO dao = new SampleDAO(); try { dao.selectSample(conMock, "select * from sample"); fail("SQLExceptionがthrowされるはず"); } catch(SQLException e) { System.out.println(e.getMessage()); } // ④モックテストの検証 verify(conMock); verify(stMock); } }