ブラム:
どのように私はオプションとオブジェクト間のテストにassert.equalsを使うのですか?デバッグした後は、同じ値を示していますが、私のテストはまだ合格していません。エラーを返す:org.springframework.test.util.AssertionErrors.assertTrueで
私のテストクラスは、ALSは以下になります。
@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles("test")
@SpringBootTest
public class DishServiceTest {
private static final String DISH_NAME = "Kaas";
private static final String DISH_TYPE = "Voorgerecht";
@Autowired
private DishService dishService;
@Test
public void findById(){
//execute
Dish dish = createDish(DISH_NAME, DISH_TYPE);
Long dishId = dish.getId();
Optional<Dish> dish2 = dishService.findById(dishId);
//verify
assertNotNull(dish2);
//assertEquals(Optional.of(dish2), dish);
assertTrue("created a dish" ,Optional.of(dish2).equals(dish));
}
private Dish createDish(String dishName, String dishType) {
Dish dish = new Dish();
dish.setDishName(dishName);
dish.setDishType(dishType);
Dish retval = dishService.save(dish);
return retval;
}
私のデバッグの結果:
オッリ:
DishService.findById
返すOptional
ことはありませんこれはnull
契約によっては、従って、assertNotNull
試験中には何もしません。最初の非空虚アサートassertTrue(dish2.isPresent())
代わりに。
その後、返されたの内容を比較Optional
してオブジェクトを:
assertEquals(dish, dish2.get())