Mockito : so testen Sie, meine Dao mit Spott?

Ich bin Neuling auf junit und TDD. Ich bin der Planung bis zur Nutzung Mockito testen, mein dao.

Dao-Schnittstelle:

package com.test.SpringApp.dao;

import java.util.List;

import com.test.SpringApp.bean.Account;
import com.test.SpringApp.bean.Person;

public interface TestDao {
    List<Account> getAccountDetails(int account_id);
    Person getPersonDetails(int person_id);
}

DaoImpl Class Code:

package com.test.SpringApp.dao;

import java.util.ArrayList;
import java.util.List;

import javax.sql.DataSource;

import org.apache.log4j.Logger;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import com.test.SpringApp.bean.Account;
import com.test.SpringApp.bean.Person;

public class TestDaoImpl implements TestDao {
    private static final Logger logger = Logger.getLogger(TestDaoImpl.class);
    private JdbcTemplate jdbcTemplate;

    public void setDataSource(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }

    @Override
    public List<Account> getAccountDetails(int account_id) {
        try {
            String query = "select * from account where account_id=?";
            SqlRowSet rowset = jdbcTemplate.queryForRowSet(query,account_id);
            Account account = null;
            List<Account> accountDetails = new ArrayList<Account>();
            while (rowset.next()) {
                account = new Account();
                account.setAccountId(rowset.getInt("accountid"));
                account.setAccountType(rowset.getString("accounttype"));
                accountDetails.add(account);
            }
            return accountDetails;
        } catch (Exception e) {
            //TODO: handle exception
            logger.info("Error :" + e.getMessage());
            return null;
        }
    }

    private Person getPersonDetails(int person_id) {
        try {
            String query = "select * from Person where person_id=?";
            SqlRowSet rowset = jdbcTemplate.queryForRowSet(query,person_id);
            Person person = null;
            while (rowset.next()) {
                person = new Person();
                person.setName(rowset.getString("name"));
                stage.setNumber(rowset.getInt("number"));
            }
            return person;
        } catch (Exception e) {
            //TODO: handle exception
            logger.info("Error :" + e.getMessage());
            return null;
        }
    }
}

Ich bin mit den oben genannten interface und die Klasse zu erhalten, Konto und person details aus der Datenbank. Könnte jemand bitte erklären Sie mir, wie Sie schreiben von Testfällen für die oben genannten dao-interface und Klasse mit junit und Mockito.

Hilfe wäre sehr geschätzt 🙂

  • Testen Sie Ihre DAO sinnvoll, wirst du eine Datenbank benötigen. Es ist am besten, um eine kleine in-memory-Datenbank für diesen, da sonst Ihre tests einfach zu lange dauert und zu umständlich einzurichten. Ich habe verwendet, H2 für diese erfolgreich in der Vergangenheit. Viel Glück.
InformationsquelleAutor Unknown | 2013-12-31
Schreibe einen Kommentar