Junit 想要但没有调用Mockito-实际上与此mock的交互为0
我尝试了以下仍然相同的错误: 我尝试了以下方法:Junit 想要但没有调用Mockito-实际上与此mock的交互为0,junit,mockito,Junit,Mockito,我尝试了以下仍然相同的错误: 我尝试了以下方法: public interface InventorydetailQuery extends InventorydetailDAO { public static final String GET_UNFIT_UNSORTED_INVENTORYDETAIL = "Inventorydetail.getInventorydetailUnfitUnsorted"; public static final String GET_UN
public interface InventorydetailQuery extends InventorydetailDAO {
public static final String GET_UNFIT_UNSORTED_INVENTORYDETAIL = "Inventorydetail.getInventorydetailUnfitUnsorted";
public static final String GET_UNASSIGNED_INVENTORYDETAIL_BY_DENOM_AND_SUBTYPE = "Inventorydetail.getUnassingedInventorydetailByDenomAndSubType";
public static final String GET_UNASSIGNED_INVENTORYDETAIL_BY_REEL = "Inventorydetail.getUnassingedInventorydetailByReel";
public static final String GET_UNFIT_INVENTORYDETAIL_BY_DENOM_AND_SUBTYPE = "Inventorydetail.getUnfitInventorydetailByDenomAndSubType";
public List<Inventorydetail> getUnfitUnsortedInventorydetail(
BigDecimal facevalue, String teamname, Integer fedofficekey);
public List<Inventorydetail> getUnassingedInventorydetailByDenomAndSubType (BigDecimal facevalue, String inventorySubType,
String inventoryType, String valuableType, Integer fedTeamKey);
public List<Inventorydetail> getUnfitInventorydetailByDenomAndSubType (BigDecimal facevalue, String inventorySubType,
String inventoryType, String valuableType, Integer fedTeamKey);
public List<Inventorydetail> getUnassingedInventorydetailByReel (BigDecimal facevalue, String inventorySubType,
String inventoryType, String valuableType, Integer fedTeamKey, Integer bpsreelkey);
}
@RunWith(MockitoJUnitRunner.class)
public class ServiceTest {
@Mock
private BPSReelQuery mockBPSReelQuery;
@Mock
private BpsreelDAOImpl reelDAO;
@Mock
private InventorydetailQuery mockInventorydetailQuery;
@Mock
private InventorydetailDAO mockInventorydetailDAO;
@Test
public void testgetBPSReels(){
when(mockBPSReelQuery.getBpsreelDetails(FED_TEAM_KEY, CURRENT_BUSINESS_DATE)).thenReturn(getBPSReelDetails());
List<ShiftReelImportedBean> shiftReelImportedBean = processReelsAutomaticModeService.getBPSReelDetails(FED_TEAM_KEY);
assertNotNull(shiftReelImportedBean);
verify(mockBPSReelQuery).getBpsreelDetails(FED_TEAM_KEY, CURRENT_BUSINESS_DATE);
}
@Test
public void testBalanceReel_Scenario1() {
ReelBalanceBean reelBalanceBean = createReelBalanceBean(VerificationConstants.RS_NORMAL, VerificationConstants.RS_FINISHED);
CPFirstRunBean cpFirstRunBean=new CPFirstRunBean();
RSNormalBean rsNormalBean=new RSNormalBean();
RecapBean recapBean = createRecapBean(BigDecimal.ZERO);
Bpsreel bpsReel = createBpsReel();
when(mockBPSReelQuery.store(bpsReel)).thenReturn(bpsReel);
when(mockBPSReelQuery.findBpsreelByPrimaryKey(any(Integer.class))).thenReturn(bpsReel);
List<Inventorydetail> inventoryDetailsList = createInventoryDetailsList();
when(mockInventorydetailQuery.getUnassingedInventorydetailByDenomAndSubType(reelBalanceBean.getFaceValue(),
VerificationConstants.INVENTORY_SUB_TYPE_UNSORTED, VerificationConstants.INVENTORY_TYPE_UNSORTED,
VerificationConstants.VALUABLE_TYPE_CURRENCY, FED_TEAM_KEY)).thenReturn(inventoryDetailsList);
verify(mockInventorydetailQuery).getUnassingedInventorydetailByDenomAndSubType(reelBalanceBean.getFaceValue(),
VerificationConstants.INVENTORY_SUB_TYPE_UNSORTED, VerificationConstants.INVENTORY_TYPE_UNSORTED,
VerificationConstants.VALUABLE_TYPE_CURRENCY, FED_TEAM_KEY);
}
}
公共接口InventorydetailQuery扩展了InventorydetailDAO{
公共静态最终字符串GET_UNFIT_UNSORTED_INVENTORYDETAIL=“INVENTORYDETAIL.getInventorydetailUnfitUnsorted”;
公共静态最终字符串GET_UNASSIGNED_INVENTORYDETAIL_BY_DENOM_和_SUBTYPE=“INVENTORYDETAIL.getUnassignedInventoryDetailByDenomandSubtype”;
公共静态最终字符串GET_UNASSIGNED_inventorydailbyreel=“inventorydail.getunassignedinventorydailbyreel”;
公共静态最终字符串GET\u UNFIT\u INVENTORYDETAIL\u BY\u DENOM\u和\u SUBTYPE=“INVENTORYDETAIL.getunfitinventorydailbydenomandsubtype”;
公共列表getUnfitUnsortedInventorydetail(
BigDecimal facevalue、字符串teamname、整数fedofficekey);
公共列表GetUnassignedInventoryDetailByDenoMandSubtype(BigDecimal facevalue,String inventorySubType,
字符串inventoryType、字符串valuableType、整数fedTeamKey);
公共列表getUnfitInventorydetailByDenomAndSubType(BigDecimal facevalue,String inventorySubType,
字符串inventoryType、字符串valuableType、整数fedTeamKey);
公共列表GetUnassignedInventoryDetailByReel(BigDecimal facevalue,String inventorySubType,
字符串inventoryType、字符串valuableType、整数fedTeamKey、整数BPSRELKEY);
}
@RunWith(MockitoJUnitRunner.class)
公共类服务测试{
@嘲弄
私有BPSReelQuery mockBPSReelQuery;
@嘲弄
私有BpsreelDAOImpl reelDAO;
@嘲弄
私有InventorydetailQuery模拟InventorydetailQuery;
@嘲弄
私有InventorydetailDAO mockInventorydetailDAO;
@试验
public void testgetBPSReels(){
when(mockBPSReelQuery.getbpsreldetails(FED_TEAM_KEY,当前_BUSINESS_DATE))。然后return(getbpsreldetails());
List shiftreeImportedBean=processReelsAutomaticModeService.GetBPSReledDetails(FED\U团队\U键);
assertNotNull(shiftreImportedBean);
验证(mockBPSReelQuery).getbpsreldetails(联邦储备银行团队密钥,当前业务日期);
}
@试验
公共无效测试场景1(){
ReelBalanceBean ReelBalanceBean=createReelBalanceBean(VerificationConstants.RS_正常,VerificationConstants.RS_完成);
CPFirstRunBean CPFirstRunBean=新的CPFirstRunBean();
RSNormalBean RSNormalBean=新的RSNormalBean();
RecapBean RecapBean=createRecapBean(BigDecimal.ZERO);
Bpsreel Bpsreel=createBpsReel();
when(mockBPSReelQuery.store(bpsReel)).thenReturn(bpsReel);
当(mockBPSReelQuery.findbpsrelebyPrimaryKey(any(Integer.class)))。然后返回(bpsReel);
List inventoryDetailsList=createInventoryDetailsList();
当(mockInventorydetailQuery.GetUnassignedInventoryDetailByDenoMandSubtype)(reelBalanceBean.getFaceValue())出现时,
VerificationConstants.INVENTORY\u SUB\u TYPE\u未排序,VerificationConstants.INVENTORY\u TYPE\u未排序,
验证常量。有价值的(类型、货币、联邦储备银行团队(密钥))。然后返回(库存明细列表);
验证(mockInventorydetailQuery).GetUnassignedInventoryDetailByDenoMandSubtype(reelBalanceBean.getFaceValue(),
VerificationConstants.INVENTORY\u SUB\u TYPE\u未排序,VerificationConstants.INVENTORY\u TYPE\u未排序,
验证常数。有价值的(类型、货币、联邦储备银行(团队)密钥);
}
}
仍然会得到相同的异常。任何解决此问题的提示都将受到重视
谢谢
MS还没有足够的确切答案。这里有一些类似于我期望看到的东西 reveel.java:
package org.makeyourcase;
public interface Reel {
}
ReelQuery.java:
package org.makeyourcase;
public interface ReelQuery {
void store(Reel reel);
}
ReelService.java:
package org.makeyourcase;
public class ReelService {
private ReelQuery reelQuery;
public void store(Reel reel) {
reelQuery.store(reel);
}
}
ReelQueryTest.java:
package org.makeyourcase;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public class ReelServiceTest {
@Mock
private ReelQuery mockReelQuery;
@Mock
private Reel mockReel;
@InjectMocks
private ReelService subject;
@Test
public void testThat_Store_DelegatesToQuery() throws Exception {
subject.store(mockReel);
verify(mockReelQuery).store(mockReel);
}
}
你能分享你的测试对象吗?我建议你声明你的测试对象并用@InjectMocks标记它。如果你(1)没有向我们展示你试图测试的代码,(2)没有向我们展示你如何创建你试图测试的对象,(3),我们中的任何人怎么可能告诉你测试失败的原因不要向我们展示测试类中实际与正在测试的对象交互的方法,(4)不要指出哪些测试实际上失败了?在您实际向我们展示失败的代码之前,这个问题是完全无法回答的。对不起,您仍然没有提供我们需要帮助您的所有信息。而且,代码太多了。简化你的问题。在这个过程中,你甚至可以自己找到答案。从您提供的信息来看,无法判断您的测试对象是什么,更不用说问题可能存在于该对象的何处。如果没有足够的信息来回答问题,可以接受的做法是使用注释来询问所需的信息,然后等待OP的响应。没有答案不是答案。我确实留下了评论。下次在建议某人留下评论之前,请先阅读评论。:)答案是引导他朝着正确的方向前进——一个评论不足以说明一切,但可以确切地说明他应该提供什么。如果他能提供足够的额外信息,我可以很容易地编辑答案,以了解他需要什么。我的目标是帮助那个家伙。如果你不想提供帮助,最好的办法就是忽略这个问题,继续前进。@don上面的评论可能是从评论队列中提出来的。