簡體   English   中英

使用Mockito / JUnit-Database操作進行Java應用程序的單元測試

[英]Unit testing Java application with Mockito/JUnit-Database operations

我只是實現JUnit測試的初學者。 我有一個測試案例,如下所示。 我也嘗試了when ... thenturn + verify方法。

@RunWith(MockitoJUnitRunner.class)
public class CategoryControllerTest {

    @InjectMocks
    CategoryController categeoryCntrlr;
    @Mock
    private CategoryService catSvc;
    //private CategoryController catCntrl;

    @Test
    public void insertCategoryTest(){
        Category cat=new Category();
        cat.setStrCatName("Vehicle");
        String str = categeoryCntrlr.insertCategory(cat);
        System.out.println(str);
        assertEquals("failure",str);
    }
}

我的控制器實際上返回了字符串“成功”,但是我的上述測試用例始終將str的值表示為null。

當我使用when ... thenreturn()並進行驗證時,即使我將返回值更改為測試用例通過的其他值,它實際上也不在測試我的存儲庫方法。 我知道這里有行為和測試。 我們有什么解決方案可以同時解決嗎? 我可以得到一些初學者教程(我看過計算器示例並找到經過測試的方法,但沒有插入/更新數據庫)嗎? 我無法理解Mockito的參考文檔以及它的實際測試方式。 有人可以幫我嗎?

我不確定100%確定insertCategoryTest()目標是什么,但是您可能想在控制器和/或服務中添加方法。

例如,要將您的控制器中的insertCategory()方法存根以始終返回"failure" ,請執行以下操作:

when(categeoryCntrlr.insertCategory(any())).thenReturn("failure");

這里有更多有關驗證交互和存根方法調用的示例: http : //mockito.org

鏈接到Javadoc:

http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html

暫無
暫無

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

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