Tenho um método C# com um parâmetro out:
public bool TryGetNext(out Bestellung? bestellung);
Ao configurar um mock para esse método usando Moq, como faço para:
Manipular corretamente o parâmetro out na configuração?
Fazer o mock retornar valores diferentes e atribuir valores diferentes ao parâmetro out em chamadas subsequentes?
Como já precisei dessa informação duas vezes e tive problemas para pesquisá-la todas as vezes, postei isso aqui.
Vamos fingir que temos esse método,
o que o torna especial, ele tem um parâmetro de saída, geralmente se você não se importa
seria correto declarar que esta configuração está atuando em qualquer entrada, desde que seja de
Type Bestellung
No caso de
Out
você precisar usarIt.Ref<Bestellung>.IsAny
.Como podemos fazer com que a configuração nos dê resultados diferentes toda vez que a chamamos?
No meu caso, o método original é um DeQueue, então eu o reconstruí.
aqui obtemos a variável
bestellung
que acabamos de atribuir e com oreturn
, como normalmente fazemos, atribuímos o valor de retorno do próprio método.