spring 4.0 JUnit簡單的Dao,Service測試

來源:互聯網
上載者:User

標籤:

1.AbstractTransactionalJUnit4SpringContextTests 和AbstractJUnit4SpringContextTests。我們在測試案例類要繼承兩種中的一個。

AbstractTransactionalJUnit4SpringContextTests提供了資料庫自動復原,也就是說測試前和測試後資料庫是一樣的

AbstractJUnit4SpringContextTests不提供資料庫自動復原,測試會破壞資料庫。

查看源碼發現,AbstractTransactionalJUnit4SpringContextTests就是繼承自AbstractJUnit4SpringContextTests,同時類上面多了兩個Annotation:@TestExecutionListeners(TransactionalTestExecutionListener.class) 和@Transactional。所以實現資料庫復原有兩種方法,如下:

 public class BasicTest extends AbstractTransactionalJUnit4SpringContextTests {} 

@TestExecutionListeners(TransactionalTestExecutionListener.class)@Transactionalpublic class BasicTest extends AbstractJUnit4SpringContextTests {}

好吧,說了這麼多沒用的還不如直接上代碼

為了避免每個測試案例都要配置spring環境,先建立一個父類:BasicTest,內容很簡單,真的很簡單:

@ContextConfiguration(locations= {"classpath:spring/applicationContext.xml","classpath:spring/spring-servlet.xml"})public class BasicTest extends AbstractTransactionalJUnit4SpringContextTests {}
@ContextConfiguration:顧名思義就是配置context設定檔的地址,我這裡是Web程式,所以還要spring-servlet.xml。
網上的例子都有@RunWith註解,但是我發現 AbstractJUnit4SpringContextTests 類上已經有了@RunWith,那麼這裡就不需要了。只要配置@ContextConfiguration就可以了

然後測試案例繼承BasicTest如下: 具體的測試方法怎麼寫就不用說了。
public class PeopleServiceTest extends BasicTest{    @Resource(name="PeopleService")    private PeopleService ps;        @Test    public void queryAll() {        List<People> list=ps.queryAll(null);        System.out.println(list);        Assert.assertEquals("list沒有10個", 10, list.size());    }        @Test    public void update() {        People p=new People().set("id", 29).set("name", "tom").set("address", "").set("age", 10);        Assert.assertEquals("沒有修改", 1, this.ps.update(p));    }    @Test    public void insert() {        People p=new People().set("name", "Mike").set("address", "america").set("age", 10);        Assert.assertEquals("沒有插入", 1, this.ps.add(p));    }}

 

 

 

spring 4.0 JUnit簡單的Dao,Service測試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.