2010-04-20 3 views
0

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에 대해

+0

관련성이 있습니까? http://stackoverflow.com/questions/37359/what-c-mocking-framework-to-use – Charles

+0

아직 존재하지 않는다면 멋진 오픈 소스 프로젝트가 될 것입니다. 래퍼 생성기가 메소드를'void Process (IProcessor p)'로 변환해야한다면 어떻게'void Process (Processor p)'와 같은 의존성을 처리 할 수 ​​있습니까? 어쨌든 Visual Studio의 "Extract Interface"는 충분히 잘 작동합니다. – Juliet

+0

@Juliet - 저로서는 충분하지 않습니다. 나는 예를 들어 인터페이스를 추출 할 수 있기를 원한다. System.Timers.Timer 또는 내 코드 외부의 다른 클래스. – fostandy

답변

0

나는 좋은 일을들을하지만 난 그들에 대해 많은 추가 정보가 필요 없다. 책에 대해 조금 읽으십시오.

0

나만의 인터페이스를 만들고 필요한 것을 구현하는 것이 좋습니다. Typemock과 같은 방식은 악의적 인 것이며 리팩토링되기 전까지는 레거시 코드에서만 사용해야합니다.

+0

나는 그것을 사용하기 시작할 때까지 내가 무엇이 필요한지 일반적으로 모른다. 이전에 사용하지 않은 클래스의 메소드를 호출 할 때마다 그 메소드를 인터페이스에 추가 할 때마다 말하는 것입니까? 이것은 큰 고통처럼 보입니다. – fostandy

+0

너무 나쁘지 않고 가치가 있다고 생각합니다. 그리고 작을수록 인터페이스가 더 잘 유지됩니다. 그렇지 않으면 다른 옵션이 있는지 모르겠지만 Typemock. 특히 시스템 라이브러리에서 정적 메서드 호출 등을 생각할 때. 나는 통계를 우아하게 조롱하는 것을 어쨌든 알지 못한다. – ziya

관련 문제