gpt4 book ai didi

java - JUNIT 测试用例未通过

转载 作者:行者123 更新时间:2023-12-02 01:18:20 25 4
gpt4 key购买 nike

我有一个类,我在其中编写代码来创建新类别,如果找不到类别,它将抛出“CategoryNotFoundException”。我已经写了测试用例,但没有通过。

如果我从 JUNIT 测试用例中省略“expected= CategoryNotFoundException.class”,它将通过。但我不想更改测试用例中的任何部分。我尝试从我实现的类中抛出异常,但它仍然没有通过。我坚持在那里通过测试用例。

    DAO code::
@Transactional
public boolean createCategory(Category category){
//boolean isInserted=false;

Session session=this.sessionFactory.getCurrentSession();
session.save(category);
return true;

//return isInserted;
}

也尝试了以下代码,但 TC 未通过:

   @Transactional
public boolean createCategory(Category category){
//boolean isInserted=false;
try{
Session session=this.sessionFactory.getCurrentSession();
Integer isInsertedWrapper=(Integer)session.save(category);
if(isInsertedWrapper>0){
return true;
}else{
throw new CategoryNotFoundException("CategoryNotFoundException");
}
}
catch(Exception ex){
return false;
}
}

JUNIT 代码::

    @Test(expected= CategoryNotFoundException.class)
@Rollback(true)
public void testCreateCategoryFailure() throws CategoryNotFoundException {
categoryDAO.createCategory(category);
Category savedCategory = categoryDAO.getCategoryById(2);
assertNotEquals(category, savedCategory);`enter code here`

}

最佳答案

你试图抛出一个异常,但你也在捕获异常,所以你应该重新抛出如果有必要,那么你应该尝试这样做:

@Transactional
public boolean createCategory(Category category){
//boolean isInserted=false;
try {
Session session=this.sessionFactory.getCurrentSession();

Integer isInsertedWrapper=(Integer)session.save(category);

if(isInsertedWrapper>0){
return true;
}else{
throw new CategoryNotFoundException("CategoryNotFoundException");
}
} catch(CategoryNotFoundException exc) {
throw exc;
} catch(Exception ex){
return false;
}
}

关于java - JUNIT 测试用例未通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57643310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com