MyShop - Tests unitaires de la couche métier et de la couche d'accès aux données
Par François Pfister,
mardi 4 avril 2006 à 07:36 :: Cours et TP Java 3a 2006
:: #32
:: rss
Validez le code de la couche métier de l'application web MyShop, ainsi que la couche d'accès aux données, en utilisant le framework JUnit.
le code source des beans métier (Pojo) et des classes d'accès aux données (Dao)
ainsi que les utilitaires et classes de base
le télécharger ici
la classe de test pour Customer
à faire: sur la base de cette classe, écrire l'ensemble des tests pour tous les POJO et DAO du projet, mais en utilisant le framework Junit (utiliser l'assistant TestCase d'Eclipse)
import generic.PersistenceException;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import app.Customer;
import app.dao.jdbc.CustomerDao;
public class CustomerTest {
private static Log log = LogFactory.getLog(CustomerTest.class);
private String name;
private String forName;
private String address;
private String town;
private String country;
private String totalPrice;
private Customer customer;
private static CustomerDao customerDao = CustomerDao.getInstance();
protected void update() {
customer.setAddress(address);
customer.setCountry(country);
customer.setForName(forName);
customer.setName(name);
customer.setTotalPrice(Double.parseDouble(totalPrice));
customer.setTown(town);
}
protected List findByParentId(String id) throws PersistenceException {
return customerDao.findByParentId(id);
}
protected Customer findByName(String name, String forName)
throws PersistenceException {
return (Customer) customerDao.findByName(name + ";" + forName);
}
protected void save() {
customerDao.save(customer);
}
protected void delete() {
customerDao.delete(customer);
}
protected void newObject() {
customer = new Customer();
}
public String toString() {
String result = "";
try {
List customers = findByParentId(null);
Iterator custIterator = customers.iterator();
while (custIterator.hasNext()) {
Customer customer = (Customer) custIterator.next();
result += customer;
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public void testSave() throws PersistenceException {
name = "Toutankhamon";
forName = "Jean-Paul";
address = "352, rue des Pyramides";
town = "Thèbes";
country = "Egypte";
totalPrice = "10000.99";
newObject();
update();
save();
String result = toString();
System.out.println(result);
String expected = "Toutankhamon Jean-Paul 352, rue des Pyramides Thèbes Egypte 10000.99";
if (result.indexOf(expected) == -1) {
log.error(name + " not found");
throw new RuntimeException("error, " + name + " not found");
}
// supprimer aussitôt
customer = findByName(name, forName);
if (customer != null)
delete();
else {
log.error(name + " not found");
throw new RuntimeException("error, " + name
+ " not found - not deleted");
}
log.debug("test " + name + " ok");
}
public static void main(String[] args) throws PersistenceException {
CustomerTest ct = new CustomerTest();
ct.testSave();
}
}
|
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.