2012-10-23 3 views
4

저는 Moq를 시험해보고 있으며, 아주 기본적인 예제를 고수했습니다. 나는 아주 간단한 인터페이스를 조롱하고 싶다. 입력 :정말 기본적인 moq 예제가 실패합니다.

namespace Example 
{ 
    public interface IInput 
    { 
     int SomeProperty { get; set; } 
    } 
} 

이것은 매우 쉬운 일처럼 보인다. ..

using Moq; 
using NUnit.Framework; 

namespace FirstEniro._Test 
{ 

    [TestFixture] 
    class TestFirstClass 
    { 
     [Test] 
     public void TestConstructionOk() 
     { 
      var mock = new Mock<IInput>(); 
      mock.Setup(r => r.SomeProperty).Returns(3); 

      var x = new FirstClass(mock); 

      Assert.That(x, Is.EqualTo(3)); 
     } 
    } 
} 

컴파일러는 <Example.IInput>Moq.Mock<Example.IInput>에서 변환 할 수 없습니다 을 내가 뭘 잘못 볼 수 없습니다 "라고하십시오 : 나는 다음과 같은 테스트 코드를 조롱 할 때 그러나, 나는 컴파일 오류 나를

var x = new FirstClass(mock.Object); 

Mock 클래스/설정 화 방법에 사용되는 실제 조롱 객체를 가져옵니다.하는 특성 Mock 인스턴스

답변

12

mocked 객체의 인스턴스를 검색하기 위해 mock 속성을 사용하십시오. MOQ 프레임 워크 Mock에서

var x = new FirstClass(mock.Object); 

은 (코뿔소 모의 객체에서처럼) 조롱 무엇의 인스턴스가 아닌.

+0

감사합니다. 당신은 단지 내 문제를 정확히 지적했습니다 : Rhino Mocks 경험에 의해 "오염"했습니다 :-) – Morten

+0

@Morten Rhino에서 Moq로 전환했을 때 같은 문제가 있었기 때문입니다 :) –

3

사용 Object가했습니다 도움 라이온스. C# 컴파일러 제한으로 인해 Object 접근자를 사용해야합니다. Microsoft Connect에 투표하면 투표 할 수 있습니다 (QuickStart의 메모 참조).