[조롱하는 봉인 클래스] [1] 통증이 매우 클 수 있습니다. 현재 ui_policytable_java_spe_policy 어댑터 패턴 이 은혜를 내가 처리할 수 있지만, 그냥 계속 뭔가 기분이 이상해.
그럼, 어떻게 가장 좋은 방법은 가능* 조룽 봉인 클래스
Java 대답이 itopia 이상의 *. 사실 난 더 이상 상당한 것으로 그동안 이 제공하는 자바 커뮤니티 다루고 있다.
그런데 여기서 닷넷 (.net) 기반 의견을 내놓고 있다.
[1]: q = how% 20to% 20mock% 20sealed% 20class http://www.google.com/search?
있다고 믿지만 몰 에서 마이크로소프트 리서치, 그렇게 할 수 있습니다. &Solarisdvd 몰 페이지:
>. 몰 모든 .NET 우회할 사용될 수 있습니다. >. 방법 등 non-virtual/static >. 방법으로 봉인 유형.
[가짜 레임워크 비주얼 스튜디오에서 11], 즉 > (http://aka.ms/vs11-fakes) 는 차세대 몰 &. 스텁 (stub), 결국 바꾸시겠습니까. 그러나 가짜 몰 수 있기 때문에 다른 옮겨가는 몰 가짜 코드에 일부 수정해야 합니다. 나중에 안내선 엔드입니다 마이그레이션과 사용할 수 있습니다.
, > 요구 사항: Visual Studio .NET 11 Ultimate, 4.5
My general rule of thumb 에로남이네 객체에는 내가 할 수 있는 공통 인터페이스입니다 조룽 너무 있어야 합니다. 내 생각에 이것은 적절한 테스트를 하면 훨씬 쉽게 디자인 현명 (그리고 일반적으로 what you get 할 경우 TDD). 이에 대해 더 자세히 읽을 수 있는 구글 블로그 테스트 최신값 게시물로의 (http://otl. 점 9).
또한 지난 4 년 동안 주로 I& # 39, ve been apc® 자바 가상 머신 (jvm) 에 있는 한 손으로 내가 내가 말할 수 있는 신뢰할 수 있는 횟수를 I& # 39, ve 생성되는가 최종 (방수) 클래스. 내가 항상 좋은 이유는 다른 규칙을 슬라이드에서는 기뻐하 권한과는 대조적으로 이 클래스 등을 기본적으로.
문제가 있다는 핑계를 대며 티파무크 나쁜거라 설계. 지금 내가 알고 있는 경우가 종종 있습니다 # 39 에 숨어 있는 나쁜 사람이 else& # 39 의 설계, 개발 프로세스를 it& it 를 이끌 수 있도록 허용하는 것이 매우 쉽게 자신의 나쁜거라 제작되었다.
만약에 you& # 39, re going, 기존의 콩지름에 조롱하는 프레임워크입니다 사용할 수 있도록 한 것 같은 무크) 및 생성 및 격리 레이어에는 조룽 격리인 레이어에는 우나무크이블 중심으로 한다.
최근에 읽은 후 이 문제를 스트라이프하지 왔는지 / 검색: 제외한 다른 도구를 사용하여 웹, 같다 수립하였습니다 위에서 언급한 것은 쉽지 않다. 또는 처리할 그러하매 셨으며 as I did:
만드시겠습니까 인스턴스에서는 클래스용 구성자를 받지 못한 채 "이라며" 라고 합니다.
시스템.런타임.즈리얼리제이션.프로마테세비치스드그레토니니시알이제도비치 (린스턴스타이프);
할당할지 데이터베이스에구성원을 속성 값을 통해 반사 / 필드
유롭ject.게티페 () (트로, 뉴발루, null), 오스트발루 그제프로페티 (PropertyName" ";)
유롭ject.게티페 그제필드 오스트발루 (트로, 뉴발루), () (FieldName" ";)
그런 것이 타당하다고 봉인 클래스가 조룽 많기 때문에 프레임워크 클래스 굳었나이다.
저의 경우는 I& # 39 m, s 클래스, 내가 할 수 있도록 하는 .Net& 조룽 # 39 메사게크루 예외 처리 TDD 내 볼 수 있다.
만약 누군가 Moq& # 39 에 대한 해결 방법에 대한 아이디어를 가지고 있는 잘못된 설치 오류,, 제발 " 무시불가능한 member" 알려주세요.
코드:
[TestMethod]
public void Test()
{
Queue<Message> messages = new Queue<Message>();
Action<Message> sendDelegate = msg => messages.Enqueue(msg);
Func<TimeSpan, MessageQueueTransaction, Message> receiveDelegate =
(v1, v2) =>
{
throw new Exception("Test Exception to simulate a failed queue read.");
};
MessageQueue mockQueue = QueueMonitorHelper.MockQueue(sendDelegate, receiveDelegate).Object;
}
public static Mock<MessageQueue> MockQueue
(Action<Message> sendDelegate, Func<TimeSpan, MessageQueueTransaction, Message> receiveDelegate)
{
Mock<MessageQueue> mockQueue = new Mock<MessageQueue>(MockBehavior.Strict);
Expression<Action<MessageQueue>> sendMock = (msmq) => msmq.Send(It.IsAny<Message>()); //message => messages.Enqueue(message);
mockQueue.Setup(sendMock).Callback<Message>(sendDelegate);
Expression<Func<MessageQueue, Message>> receiveMock = (msmq) => msmq.Receive(It.IsAny<TimeSpan>(), It.IsAny<MessageQueueTransaction>());
mockQueue.Setup(receiveMock).Returns<TimeSpan, MessageQueueTransaction>(receiveDelegate);
return mockQueue;
}
내가 만드는 라우트를 일반적으로 시행하십시오 인터페이스입니다 용이하게 하기 위해 방수 및 어댑터 / 가상본 클래스에 대한 조롱을 유형:. 그러나, 이 경기 역시 이제는 I& # 39 를 만들 수 있는 방법을 찾고 있는 가상 비사양 봉인 인터페이스입니다 가상본 유형. 이 때 잘 협력했습니다 프록시 클래스가 봉인 클래스가 기본 캡슐화합니다 정말 자연 및 사용자 부분이다.
이 같은 다룰 때, 나는 attaboy 동일한 작업을 수행하는 데 필요한 코드를 작성할 수 있도록 인터페이스 및 프록시입니다 유형: 그래서 구축됩니까 라리브러리 자동화해야 과제다.
이 코드는 비해 다소 복잡한 것을 얻을 수 있기 때문에 이 글에서 샘플링합니다 너회가 참조에는 어셈블리인 (대신 소스 코드), 코드 생성 수행할 수 있도록 필요한 모든 종류, doesn& t # 39, 많은 구성.
자세한 내용은 [이 페이지] [1].
[1]: http://jolt.codeplex.com/wikipage? title = Jolt.Testing.CodeGeneration.Proxy& 레페링티틀리 = 홀트스테스팅.
비록 그 현재는 베타 릴리스에서는 염두에 두고 있는 것 같아 보람 있다 [만] (http://msdn.microsoft.com/en-us/library/hh549176%28v = vs. 110%29.aspx) 기능을 새 [가짜 레임워크] (http://aka.ms/vs11-fakes) () 의 일부를 [Visual Studio 11] (http://www.microsoft.com/visualstudio/11/en-us) 베타 버전).
심정수는 > 추상형데이터타입 우회할 수 있는 메커니즘을 제공하는 모든 닷넷 (.net), 사용자 정의 방법을 위임합니다. 심 대표가, 그 중 가짜 발생기입니다 매개변수이므로 코드 생성 유형은 의해 새로운 방법을 사용하여, 심 호출하십시오 유형을 지정할 수 구현. 후드 아래에 있던 심 유형은상위 콜백 메서드의 마실 시체들이요 런타임에 사용할 하면서
저는 개인적으로 이 같은 방법을 사용하여 조룽 대한 프레임워크 클래스 드라 윙콘테스트 보면 된다.