2016-03-28 22 views
0

İki ilk test fonksiyonumu basit yazmayı denedim.İki (junit) test fonksiyonu yaratın

public Milestone create(Milestone milestone) throws ClassNotFoundException, SQLException { 
    String id = UUID.randomUUID().toString(); 
    milestone.setId(id); 

    Class.forName("org.h2.Driver"); 
    Connection connection = DriverManager.getConnection("jdbc:h2:~/dao_db", "sa", ""); 
    PreparedStatement prepareStatement = connection.prepareStatement("INSERT INTO MILESTONE VALUES(?, ?,?)"); 

    prepareStatement.setString(1, id); 
    prepareStatement.setString(2, milestone.getName()); 
    prepareStatement.setString(3, milestone.getDescription()); 
    prepareStatement.executeUpdate(); 

    connection.close(); 
    return milestone;} 

ikincisi bir güncelleme fonksiyonudur: Ben test etmek istiyorum

ilk fonksiyon oluşturmak fonksiyonudur

public Milestone update(Milestone milestone) throws ClassNotFoundException, SQLException{ 

    Class.forName("org.h2.Driver"); 
    Connection connection = DriverManager.getConnection("jdbc:h2:~/dao_db", "sa", ""); 
    PreparedStatement prepareStatement = connection.prepareStatement("UPDATE MILESTONE SET NAME=?, DESCRIPTION = ? WHERE ID=?"); 

    prepareStatement.setString(1, milestone.getName()); 
    prepareStatement.setString(2, milestone.getDescription()); 
    prepareStatement.setString(3, milestone.getId()); 
    prepareStatement.executeUpdate(); 

    connection.close();  
    return milestone;}; 

Sonra ben bu iki işlevi yazmaya çalıştı:

import static org.junit.Assert.*; 
    import java.sql.SQLException; 
    import org.junit.Test; 
    import model.Milestone; 

    public class MilestoneDAOImplTest { 

@Test 
public void createTest() throws ClassNotFoundException, SQLException { 
    MilestoneDAOImpl ms = new MilestoneDAOImpl(); 
    Milestone milestone = new Milestone("test","test"); 
    assertNotNull("milestone created", ms.create(milestone)); } 

@Test 
public void updateTest() throws ClassNotFoundException, SQLException { 
    MilestoneDAOImpl ms = new MilestoneDAOImpl(); 
    Milestone milestone = new Milestone("test","test"); 
    assertNotNull("milestone updated", ms.update(milestone)); } 

Bu iki test işlevinin doğru olup olmadığını bana söyler misiniz? Çünkü böyle testler yapmanın anlamsız olduğunu anladım. Ben mesela benim createTest işlevinde, tek doğrulama

assertNotNull("milestone created", ms.create(milestone)); 

olduğu Ama aynı zamanda (aynı işlevi ms.create (dönüm noktası) aynı şeyi yaparak benim ana sınıfında olduğunu doğrulamak anlamına gelir. Yani, Bu testlerin gerçek yararı nedir? (eğer bu testler doğruysa?) Gerçek bir fark görmedim (Java'da yeni biriydim)

+1

Ayrıca, bazı readFunctions ve değerleri doğrulayarak aynı kaydı almaya çalışarak başarıyla oluşturulmuşsa, kaydı kontrol edebilirsiniz. Bu test yöntemlerini, görüntülenmek istediğiniz gibi bazı bağlamlarda kullanıyorsanız bazı ekranlarda o zaman bu çeki de ekleyebilirsiniz –

cevap

0

Test sınıfınızda ek olarak 1 kontrol edebilirsiniz. Atılan özel durumun her biri için, belirli özel durumlara özel senaryolar atılmışsa, bunu ileri sürebilirsiniz: Örneğin:

@Test 
    public void createTest() throws ClassNotFoundException, SQLException { 
    try{ 
    MilestoneDAOImpl ms = new MilestoneDAOImpl(); 
Milestone milestone = new Milestone("test","test"); 
assertNotNull("milestone updated", ms.update(milestone)); 
}catch (ClassNotFoundException e1) 
{ 
// do some assertions based on scenarios like some relevent jars are missed in classpath 
} 
catch (SQLException e2) 
{ 
// do some assertions like wrong connection URL etc. 
} 
} 
  1. Ekleme & ekleme işlemlerinin DB'de istenildiği gibi yürütülmesini onaylayın. DAO tabakasında

    public Milestone select(String milestoneId) throws ClassNotFoundException, SQLException{ 
    select * from MILESTONE where ID=milestoneId 
    transform resultset into Milestone object 
    return MilestoneObject; 
    } 
    

seçme yöntem oluşturun Ve eg için savunmak için test yönteminden diyoruz .

@Test 
    public void updateTest() throws ClassNotFoundException, SQLException { 
MilestoneDAOImpl ms = new MilestoneDAOImpl(); 
Milestone milestone = new Milestone("test","test"); 
assertNotNull("milestone updated", ms.update(milestone)); 
Milestone milestone1=ms.select(milestone.getId()); 

assertEquals(milestone1.getName(),milestone.getName()); 
assertEquals(milestone1.getdescrition(),milestone.getDescription()); 
     } 

Bu yardımcı olur umarım.