Daoクラスをテストする方法を探しています。その後、私は方法DAOのクラスをテストできるようにデータソースを取得する方法
public List<Activity> activityList(Connection con)
どのように私はUserDAOImplをテストすることができますし、クラスのUserDAOImplを持って
public class OrderEJB implements OrderEjbLocal{
@Resource(mappedName = "java:jboss/datasources/MyDS")
private DataSource dataSource;
@Inject
@DataAccessObject
private UserDAO userDAO;
@Override
public List<Activity> activityList() {
try (Connection connection = dataSource.getConnection();) {
return this.userDAO.findAllActivities(connection);
} catch (SQLException e) {
log.error("error");
throw new RuntimeException(e);
}
}
}
:
私のクラスの一つは、このようにデータソースを取得しますか?私はmockito、jmock、easymockのようなものが必要ですか?また、Junitテストを実行するときにサーバーを実行する必要がありますか?またはそれなしでそれを行う方法はありますか?
UserDAOImpl testInstance = ...; // Not sure how you do this
Connection mockedConnection = mock(Connection.class);
// Business method
testInstance.activityList(mockedConnection);
// Asserts
verify(mockedConnection).prepareStatement("select * from dual"); // Or whatever it is that you need to verify
サーバーがまったく実行する必要はありません:あなたは次のようにあなたのUserDAOImplのactivityListメソッドに渡しているという接続を模擬するためにMockitoを使用することができます
おかげ
あなたはhttp://stackoverflow.com/questions/9807414/dao-unit-testingからいくつかのアイデアを得ることができます – Wilson