Duvida sobre Junit

Boa tarde pessoal,

Estou implementando um teste em uma api que criei, fiz um restteamplate para testar o banco(MongoDB), criei um método de teste com @Test, onde ele adicionaria um dado no banco e verificaria se ele está retornando o código 201, só que quando eu tento inserir um valor que já está no banco ele continua mandando o código 201 Criado, sendo que na verdade deveria mandar o código 400. Pelo postman ele retorna o 400 corretamente. Alguém saberia me informar por que acontece isso?
Esse código abaixo funciona corretamente fazendo o teste, mesmo se já tiver os dados de Teste no banco.

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class PedroApiStarWarsApplicationTests {

	
	protected final String BASE_PATH = "http://localhost:";
	protected static final Logger LOGGER = LoggerFactory.getLogger(PedroApiStarWarsApplicationTests.class);

	@LocalServerPort
	private int port;
	
	RestTemplate rest;
	
	@Before
	public void setUp() {
		rest = new RestTemplate();
		System.out.println(port);
	}
	
	@Test
	public void testaInsercaoPlaneta() {
		
		Planeta planeta = new Planeta("Teste","Teste","Teste","Teste");
		ResponseEntity<String> response = null;
		response = rest.postForEntity(BASE_PATH + port +"/planetas/",planeta,String.class);
		

		Assert.assertEquals(201, response.getStatusCodeValue());
		rest.delete(BASE_PATH + port +"/planetas/"+ "Teste");

	}
	@Test
	public void testaInsercaoComMesmoID() {
		
		Planeta planeta = new Planeta("Teste","Teste","Teste", "Teste");
		
		try {

			ResponseEntity<String> response = rest.postForEntity(BASE_PATH + port +"/planetas/",planeta,String.class);
			response = rest.postForEntity(BASE_PATH + port +"/planetas/",planeta,String.class);
			LOGGER.info("Não deveria receber " +  response.getStatusCodeValue());
			Assert.fail();
		
		}catch (Exception e) {
			
			Assert.assertEquals("400 null", e.getMessage() );
 		}
		rest.delete(BASE_PATH + port +"/planetas/"+ "Teste");

}