System.Timers.Timer 또는 관리되는 모든 클래스 (사용자 정의, .net 프레임 워크 또는 일부 타사 라이브러리) (a)이 클래스를 기반으로 인터페이스를 생성하고 (b) 주어진 클래스에 대한 래퍼를 생성하는 데 사용할 수있는 프로그램이 있습니까? 예를 들어 C#에서 객체 조롱을위한 인터페이스와 래퍼를 생성하는 데 사용할 수있는 도구가 있습니까?
가 나는 인터페이스interface IFoo
{
object MyProperty { get; set; }
int SomeMethod(object a) { ... }
}
어쩌면 래퍼를 생성합니다
public class Foo
{
public object MyProperty { get { ... } set { ... } }
public int SomeMethod(object a) { ... }
}
A가
class FooWrap
{
// something for relay constructor here
...
Foo _me;
public object MyProperty { get { return _me.MyProperty; } set { _me.MyProperty = value; } }
public int SomeMethod(object a) { return _me.SomeMethod(); }
}
분명히 내가 생각하지 않은 물건을 거기에있는 경우 같은 이벤트, 제네릭 등 내가 원하는 DWIMNWIS - PSICHTO (- 플러스 - 물건 - 내가 - 분명히 - 헤이븐의 생각).
저는 resharper/vs를 인터페이스 추출에 사용할 수 있지만이 클래스는 내 자신의 클래스에서만 사용할 수 있다는 것을 알고 있습니다.
기타 : 와우, 이전에는 '받아 들일 수없는'아이디어에 익숙해 져서 어떻게 결국 정당성을 얻게되었는지 놀라운 점이 있습니다. 1 년 전 내가 조롱하고 주입 프레임 워크를 채택하고자하는 모든 객체에 대한 인터페이스를 작성해야한다는 생각은 광기의 높이와 같았습니다. 확실히 죽음과 세금은 아니지만 그것은 스파르타입니다.
나는 typemock을 알고 있고 사용 해왔다. 확실히 엘프 식 마법사의 작품입니다. 하루 800 달러가 그렇게 많은 돈처럼 보이지 않을 때 나는 그것을 사려고합니다. 또한 nmock
죄송있다 rhino mock에 대해
관련성이 있습니까? http://stackoverflow.com/questions/37359/what-c-mocking-framework-to-use – Charles
아직 존재하지 않는다면 멋진 오픈 소스 프로젝트가 될 것입니다. 래퍼 생성기가 메소드를'void Process (IProcessor p)'로 변환해야한다면 어떻게'void Process (Processor p)'와 같은 의존성을 처리 할 수 있습니까? 어쨌든 Visual Studio의 "Extract Interface"는 충분히 잘 작동합니다. – Juliet
@Juliet - 저로서는 충분하지 않습니다. 나는 예를 들어 인터페이스를 추출 할 수 있기를 원한다. System.Timers.Timer 또는 내 코드 외부의 다른 클래스. – fostandy