我试图测试我的应用,但是当我使用@MockBean时,所有函数都返回false。 这是我的考试
@RunWith(SpringRunner.class)
@SpringBootTest
public class AppParkingApplicationTests {
@MockBean
Vehicle vehicle;
@MockBean
VehicleController vehicleController;
@Test
public void getValidVehicleTest(){
//Arrange
boolean resp=false;
when(vehicle.getTipo()).thenReturn("Carro");
//Act
resp=vehicleController.getValidVehicle(vehicle.getTipo());
//Assert
assertEquals(true, resp);
}
这就是功能
public boolean getValidVehicle(String tipo){
boolean result=false;
if(tipo.equals("Carro") || tipo.equals("Moto")){
result= true;
}
return result;
}
答案 0 :(得分:1)
那是因为当返回类型是基本布尔值时,模拟方法的默认返回值为false。
我不认为你想要模拟你的控制器,因为这似乎是被测试的类。只需替换
@MockBean
VehicleController vehicleController;
带
@Autowired
VehicleController vehicleController;