@MockBean总是返回false

时间:2017-10-26 18:45:52

标签: spring-boot junit mocking

我试图测试我的应用,但是当我使用@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;
    }

1 个答案:

答案 0 :(得分:1)

那是因为当返回类型是基本布尔值时,模拟方法的默认返回值为false。

我不认为你想要模拟你的控制器,因为这似乎是被测试的类。只需替换

@MockBean
VehicleController vehicleController;

@Autowired
VehicleController vehicleController;