簡體   English   中英

EasyMock:我做錯了什么?

[英]EasyMock: What I'm doing wrong?

因此,我需要測試應用程序的服務層(我需要測試一些方法-這是我與測試部分的第一次接觸)

public void testGetAllOrderedDescByRating() {

    FAQ faq1 = initFAQ(new FAQ(), 5, 1L);
    FAQ faq2 = initFAQ(new FAQ(), 3, 2L);
    FAQ faq3 = initFAQ(new FAQ(), 11, 3L);

    EasyMock.expect(faqDao.getAllOrderedDescByRating()).andReturn(
            new ArrayList<FAQ>());
    EasyMock.expect(faqDao.makePersistent((FAQ) EasyMock.anyObject()))
            .andReturn(new FAQ());

    EasyMock.replay(faqDao);

    FAQService.saveFAQ(faq1);
    FAQService.saveFAQ(faq2);
    FAQService.saveFAQ(faq3);

    List<FAQ> list = FAQService.getAllOrderedDescByRating();

    Assert.assertEquals(list.get(0).getRating(), 11.0);
    Assert.assertEquals(list.get(1).getRating(), 5.0);
    Assert.assertEquals(list.get(2).getRating(), 3.0);
    EasyMock.verify(faqDao);
}

界面中的方法:

列出getAllOrderedDescByRating();

我收到:

java.lang.AssertionError:
意外的方法調用makePersistent(faq.FAQ@3461d1):getAllOrderedDescByRating():預期:1,實際:0 makePersistent():預期:1,實際:1(+1)

我做錯了什么?

看起來您在進行EasyMock看到的3個saveFAQ調用,但是您沒有告訴過它。 您致電的FAQService是否有可能連接到faqDao?

我希望您將3個FAQ項添加到返回的ArrayList中,而不是返回一個空的ArrayList,並且根本不需要調用saveFAQ()方法(因此刪除對它的三個調用)。

List<FAQ> l = new ArrayList<FAQ>();
FAQ faq1 = initFAQ(new FAQ(), 5, 1L);
l.add(faq1);
FAQ faq2 = initFAQ(new FAQ(), 3, 2L);
l.add(faq2);
FAQ faq3 = initFAQ(new FAQ(), 11, 3L);
l.add(faq3);

EasyMock.expect(faqDao.getAllOrderedDescByRating()).andReturn(l);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM