我有一个测试类的问题。
在我的ParkingSpotService类中,有一个UUID找到的方法,我想为此编写一个测试:
@Transactional
public Optional<ParkingSpotModel> findById(UUID id) {
return parkingSpotRepository.findById(id);
}
我做了什么?我创建了一个TestClass ParkingSpotServiceTest:
@SpringBootTest
public class ParkingSpotServiceTest {
private static final UUID ID = UUID.fromString("35361d85-107c-4f1f-a047-263093161c1b");
private static final String PARKINGSPOTNUMBER = "1010";
private static final String LICENSEPLATECAR = "EAM3J81";
private static final String MODELCAR = "FIT";
private static final String BRANDCAR = "HONDA";
private static final String COLORCAR = "GREEN";
private static final LocalDateTime REGISTRATIONDATE = LocalDateTime.now();
private static final String RESPONSIBLENAME = "Edison Azevedo";
private static final String APARTMENT = "51";
private static final String BLOCK = "A";
@InjectMocks
private ParkingSpotService service;
@Mock
private ParkingSpotRepository repository;
private ParkingSpotModel parkingSpot;
private Optional<ParkingSpotModel> optionalParkingSpot;
Pageable pageable;
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
startParkingSpot();
}
private void startParkingSpot() {
parkingSpot = new ParkingSpotModel(ID,
PARKINGSPOTNUMBER,
LICENSEPLATECAR,
BRANDCAR,
MODELCAR,
COLORCAR,
REGISTRATIONDATE,
RESPONSIBLENAME,
APARTMENT,
BLOCK);
optionalParkingSpot = Optional.of(new ParkingSpotModel(ID,
PARKINGSPOTNUMBER,
LICENSEPLATECAR,
BRANDCAR,
MODELCAR,
COLORCAR,
REGISTRATIONDATE,
RESPONSIBLENAME,
APARTMENT,
BLOCK));
}
}
在我创建了一个测试之后
@Test
void whenFindParkingSpotByIDThenReturnAnParkingSpotInstance() {
Mockito.when(repository.findById(Mockito.any(UUID.class))).thenReturn(optionalParkingSpot);
Optional<ParkingSpotModel> response = service.findById(ID);
**//above my response is value = null -> Optional.empty. Why????????**
Assertions.assertNotNull(response);
Assertions.assertEquals(java.util.Optional.class, response.getClass());
Assertions.assertEquals(ID, response.get().getId());
//here my test broke because my response "java.util.NoSuchElementException: No value present"
观察:
Mockito.when(repository.findById(Mockito.any(UUID. class)))。
当我检查ID时,正确地评估我的UUID(35361d85-107c-4f1f-a047-263093161c1b)可选
我的“响应”有什么问题?为什么数据是value=null-
您确定@beforeach
注释方法中的调用顺序正确吗?首先用MockitoAnnotations初始化mock。OpenSock(this)
然后初始化应该注入的值?我建议你换一种方式试试。
@BeforeEach
void setUp() {
startParkingSpot();
MockitoAnnotations.openMocks(this);
}
另外,不要忘记按中所述发布模拟https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/InjectMocks.html
或者,您可以删除注释并注入用Mockito创建的mock。模仿(…)
手动。
问题内容: 如何检查变量是否包含有效的UUID / GUID标识符? 我目前仅对验证类型1和4感兴趣,但这不应该限制您的答案。 问题答案: 当前,UUID是在RFC4122中指定的。一个经常被忽略的边缘情况是NIL UUID,以下正则表达式考虑到了这一点,并将返回NILUUID的匹配项。请参阅以下有关仅接受非NILUUID的UUID。这两种解决方案均适用于版本1至5(请参见第三个模块的第一个字符)
问题内容: 我有一个旧类,其中包含用于实例化LoginContext()的new()调用: 我想使用Mockito测试类来模拟LoginContext,因为它要求在实例化之前设置JAAS安全性,但是我不确定如何在不更改login()方法以外部化LoginContext的情况下进行此操作。是否可以使用Mockito模拟LoginContext类? 问题答案: 对于将来,我会推荐伊兰·哈雷尔(Eran
我有一个类需要进行单元测试: 我有一个测试用例: 当我运行测试用例时,没有使用ActiveMQConnectionFactory的模拟对象。相反,正在使用实际的实现,并且正在建立TCP连接: 我尝试了Powermockito和Mockito,但都失败了。如何模拟对象,如何成功运行测试用例? 我是单元测试新手,试图从各个社区获得帮助,但没有找到合适的答案。任何帮助都将不胜感激。谢谢
问题内容: 我正在为我的React代码编写Jest测试,并希望使用/测试PropType检查。我对Javascript领域很陌生。我正在使用npm进行安装并有一个简单的方法: 在我的测试中。我的测试看起来很像玩笑/反应教程示例,其代码如下: 但是,似乎并未触发组件中的PropType检查。我知道检查仅在开发模式下运行,但是我还认为通过npm获得了开发版本。当我使用watchify构建组件时,检查会
我有以下代码 我对嘲笑不熟悉。我有以下疑问。我正在尝试测试公共方法。 我是否可以断言私有变量workDone的值? 是否可以验证超类中的方法调用? 如何在方法中模拟私有方法调用?
我通过adb自动关闭/打开wifi。 我想根据测试用例禁用/启用wifi 到目前为止,我在这里找到了很好的信息 但是,我想在执行以下命令之前测试连接: 以上命令如果启用则禁用wifi,如果禁用则启用wifi。我想先测试连接,并在需要时采取措施。我想知道是否有一种方法可以使用adb命令。这可以通过编程实现,但我希望通过亚行来实现,使其更加可靠。 此外,以下命令仅在设备为根目录时有效 此外,以下命令在