2011-01-25 4 views

답변

6

제가 알고있는 모의 객체 라이브러리는 DMocks이지만 버려졌습니다. 최신 컴파일러 버전에서는 컴파일되지 않을 수 있습니다. 어쩌면 블랙홀, 화이트 홀자동 대체에서 std.typecons까지 어느 정도 도움이 될 것입니다.

1

그것이 실제 모의 개체 라이브러리가 될 수만큼 멋진 아니지만, 나는 현재 좋은 결과 의존성 주입에게 다음과 같은 방법으로 수행 더 MockEngine이 선호 AtomicEngine를 사용하여 자동차 기본값을 제공하지 않으면

class Car(Engine = AtomicEngine, Wheel = CartWheel) 
{ 
    this() 
    { 
     engine = new Engine; 
     ... 
    } 

    Engine engine; 
    Wheel[4] wheels; 
} 

을하는 그것이 내가 대부분의 시간을 원하기 때문에 깔끔합니다. 또한 주입은 조롱 기능에 대한 런타임 패널티가없는 컴파일 타임에 수행됩니다. 즉, 상속이 필요하지 않습니다.

unittest 
{ 
    auto car = new Car!(MockBrokenEngine, MockWheel); 
    car.start(); 
    assert(...); 
} 

이와 같이 고장난 엔진으로 자동차를 시험합시다.

+0

하지만 어떻게 당신이 모의 객체를 만들려면 어떻게해야합니까? 그것이 OP가 요구하는 것입니다. –

3
  • DMocks-revived는 D.
  • dunit (nomad) 고급 단위 테스트 툴킷도 쓴 D 프로그래밍 언어에 대한 모의 객체 프레임 워크입니다.
1

저는 조롱 솔루션이 포함 된 DUnit의 저자입니다. 다음과 같이 사용되었습니다.

class Foo 
{ 
    // Mixin mocking behaviour. 
    mixin Mockable!(Foo); 
} 

auto foo = Foo.getMock(); 

foo은 이제 가짜입니다.

참조는 여기에 있습니다 : http://htmlpreview.github.io/?https://github.com/nomad-software/dunit/master/docs/dunit/mockable.html

더 큰 예는 여기에 있습니다 : 잘하고 좋은 https://github.com/nomad-software/dunit/blob/master/source/example.d

관련 문제