Vorrei tenere traccia di una chiamata a un metodo con Rhino Mocks. Supponiamo che io ho questo codice:Rhino Mocks, VerifyAllExpectations
public class A
{
protected IB _b;
public A(IB b)
{
_b = b;
}
public void Run(string name)
{
_b.SomeCall(new C { Name = name });
}
}
public interface IB
{
void SomeCall(C c);
}
public class C
{
public string Name { get; set; }
// more attributes here
}
E il test si presenta come:
// prepare
var bMock = Rhino.Mocks.MockRepository.GenerateStrictMock<IB>();
bMock.Expect(x => x.SomeCall(new C { Name = "myname" }));
var sut = new A(bMock);
// execute
sut.Run("myname");
// assert
bMock.VerifyAllExpectations();
il test fallisce con un ExpectedViolationException perché quadro Rhino Mocks rileva 2 classi C distinte.
Come si verifica la chiamata se l'oggetto in esame crea il parametro oggetto nel metodo in prova? Qualche possibilità di dire a Rhino Mocks di controllare il parametro come "uguale"?
Grazie mille!
Salve, il compilatore dice: "Impossibile convertire espressione lambda per digitare" Rhino.Mocks.Constraints.AbstractConstraint "perché non è un tipo delegato." puntando "x => x.Name =" myname "" – Jordi
risolto l'assegnazione equals (=) al confronto (==). –
ancora lo stesso problema. Mi manca qualcosa? http://imageshack.us/f/708/errorah.png/ – Jordi