Data la seguente interfaccia:
public interface IFoo
{
bool Foo(string a, bool b = false);
}
Tentativo di deriderlo usando Moq:
var mock = new Mock<IFoo>();
mock.Setup(mock => mock.Foo(It.IsAny<string>())).Returns(false);
restituisce il seguente errore in fase di compilazione:
Un albero delle espressioni non può contenere una chiamata o una chiamata che utilizza argomenti facoltativi
Ho trovato il problema di cui sopra sollevato come un miglioramento nell'elenco dei problemi di Moq e sembra essere assegnato alla versione 4.5 (ogni volta che lo è).
La mia domanda è: cosa devo fare dato che quanto sopra non verrà risolto presto? Le mie opzioni sono solo per impostare esplicitamente il valore predefinito del parametro opzionale ogni volta che lo derido (il che sconfigge il punto di specificarne uno in primo luogo) o per creare un sovraccarico senza il bool (come quello che avrei fatto io prima di C # 4)?
O qualcuno ha trovato un modo più intelligente per superare questo problema?