2012-05-29 5 views
0
[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은 스트림 유효성 검사에 적합하지 않은 것 같습니다. Rhino Mock을 사용하여 Stream 속성 값을 캡처하는 방법은 무엇입니까?

fooMock.Content.Stub(aStream => stream = aStream); 

예외 던졌다 :

System.ArgumentNullException: You cannot mock a null instance 
Parameter name: mock 

참고 : 두더지가 더이 문제에 대한 작업을 할 것 같다.

답변

1

교체 :

var fooMock = MockRepository.GenerateMock<IFoo>(); 

로 :

var fooMock = MockRepository.GenerateStub<IFoo>(); 
관련 문제