Korzystanie NUnit 2.6.4 & FakeItEasy 1.25.2 do badanej jednostki kod C# w Visual Studio 2013 Community EditionA.Fake <Stream>() .read (...) rzucanie InvalidOperationException
Poniższy Test wykonywany jako fragment oczekuje
[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);
}
jednak tak szybko, jak ozdobić moje fałszywe z callto/Returns() lub() oświadczenie ReturnsLazily ...
[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);
}
fakeStream.Read()
rzuca System.InvalidOperationException z komunikatem:
„Liczba wartości na zewnątrz i ref parametrów określonych nie pasuje do liczby parametrów zewnątrz i ref w zaproszeniu”
od wewnątrz FakeItEasy.Configuration.BuildableCallRule.ApplyOutAndRefParametersValueProducer(IInterceptedFakeObjectCall fakeObjectCall)
, co wydaje się dość dziwne dla mnie jako Stream.Read()
nie ma żadnych out/parametry ref.
Czy jest to błąd, który powinienem zgłosić pod numerem https://github.com/FakeItEasy, czy też czegoś brakuje?
thx
Nie jestem pewien, czy widziałeś aktualizację, ale uważamy, że problem zostanie rozwiązany w FakeItEasy 1.25.3. –