[TestClass]
public class FooTests {
[TestMethod]
public void TestFoo() {
var fooMock = MockRepository.GenerateMock<IFoo>();
// MUT
FooUser.Run(fooMock);
var stream = fooMock.Content;
stream.Position = 0;
var first = stream.ReadByte();
Assert.AreEqual(0x77, (byte) first);
var second = stream.ReadByte();
Assert.AreEqual(0x78, (byte) second);
}
}
public class Foo :IFoo {
public Stream Content { get; set; }
}
public class FooUser {
public static void Run(IFoo foo) {
foo.Content = new MemoryStream(new byte[] {0x77, 0x78});
}
}
public interface IFoo {
Stream Content { get; set; }
}
AssertWasCalled
ストリームの検証には適していないようです。
fooMock.Content.Stub(aStream => stream = aStream);
例外をスローしました:
System.ArgumentNullException: You cannot mock a null instance
Parameter name: mock
注:Molesは、この問題に対してより適切に機能するようです。