Mockito verifica a última chamada em um objeto zombado

Eu tenho um pouco de lógica que precisa ser testada, como:

{
    ...
    A.add("1");
    ...
    A.add("what ever");
    ...
    A.add("2");
    A.delete("5");
    ...
}

Eu já zombei de A no meu teste e posso testar se o método add é chamado uma vez no argumento ("2"), como:

Mockito.verify(mockedA).add("2");

Minha pergunta é como testar se posso verificar se a última chamada no método add é add ("2") em vez de outros argumentos.

Como o teste acima não pode ser detectado se alguém acidentalmente adicionar outra chamada como add ("3") na última. Observe que não nos importamos com outras invocações de métodos em A novamente mais tarde. Também não nos importamos com os horários do método chamado, com a sequência dos métodos chamados.O ponto chave aqui é se podemos verificar o último argumento verdadeiro em um determinado método de um determinado objeto mockedO.

Se você perguntar por que você precisa dessa funcionalidade, eu diria que no mundo real, talvez precisemos lidar com alguma lógica que defina alguma coisa e o último conjunto vença e, a fim de evitar que alguém acidentalmente defina outra coisa inesperada, eu gostaria de usar nossa UT para entender isso. E, para não tornar o teste muito complexo e arrumado, espero apenas verificar a última chamada em um determinado método de um objeto, em vez disso, verificar algo como order / noMoreInteractions / AtMostTimes e assim por diante.

questionAnswers(3)

yourAnswerToTheQuestion