Mit NUnit 2.6.4 & FakeItEasy 1.25.2 Komponententest ein C# -Code in Visual Studio 2013 Community EditionA.Fake <Stream>() .Lesen (...) werfen InvalidOperationException
Das folgende Testfragment führt als
erwartet[Test]
public void test_whatIsUpWithStreamRead()
{
Stream fakeStream = A.Fake<Stream>();
byte[] buffer = new byte[16];
int numBytesRead = fakeStream.Read(buffer, 0, 16);
Assert.AreEqual(0, numBytesRead);
}
aber sobald ich meine Fälschung mit callto/Returns() oder ReturnsLazily() Aussage ...
[Test]
public void test_whatIsUpWithStreamRead()
{
Stream fakeStream = A.Fake<Stream>();
A.CallTo(() => fakeStream.Read(A<byte[]>.Ignored, A<int>.Ignored, A<int>.Ignored)).Returns(1);
byte[] buffer = new byte[16];
int numBytesRead = fakeStream.Read(buffer, 0, 16);
Assert.AreEqual(1, numBytesRead);
}
0 dekorierenwirft einen System.InvalidOperationException mit der Meldung:
„Die Anzahl der Werte für die Parameter und ref angegeben nicht die Anzahl der und ref Parameter im Aufruf übereinstimmt.“
aus FakeItEasy.Configuration.BuildableCallRule.ApplyOutAndRefParametersValueProducer(IInterceptedFakeObjectCall fakeObjectCall)
, die als Stream.Read()
mir ziemlich seltsam scheint hat keine out/ref Parameter.
Ist das ein Fehler, den ich bei https://github.com/FakeItEasy melden sollte, oder fehle ich etwas?
thx
Ich bin mir nicht sicher, ob Sie das Update gesehen haben, aber wir glauben, dass das Problem in FakeItEasy 1.25.3 gelöst wird. –