2017-10-26 19 views
0

私は自分のアプリケーションをテストしようとしていますが、@MockBeanを使用すると、すべての関数がfalseを返します。 これは私のテスト@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); 
} 

であり、これは戻り値の型がプリミティブboolean型である、モックメソッドのデフォルトの戻り値がfalseであるためだ機能

public boolean getValidVehicle(String tipo){ 
     boolean result=false; 
     if(tipo.equals("Carro") || tipo.equals("Moto")){ 
      result= true; 
     } 
     return result; 
    } 

答えて

1

です。

これはテスト対象のクラスと思われるので、コントローラをモックしたくないと思います。ただ、

@Autowired 
VehicleController vehicleController; 
+0

ファイン答え+1で

@MockBean VehicleController vehicleController; 

を交換してください。私はあなたのアバターが大好きです。それは何ですか ? – davidxxx

+0

私のコントローラーについても同じだと思いますが、BDに接続するいくつかの方法がありますので、どうすればいいですか? –

+0

@AndresCastañedaMarin代わりにDBを呼び出すリポジトリをモックします。 – Plog

関連する問題