2011-01-25 14 views

Respuesta

6

La única biblioteca de objetos simulados que conozco es DMocks, pero está abandonada. Puede no compilarse con las versiones recientes del compilador. Tal vez BlackHole, Agujero Blanco y AutoImplement de std.typecons que contribuyen en cierta medida.

1

Si bien no es tan elegante como una verdadera biblioteca de objetos simulacro podría ser, hago actualmente la inyección de dependencias con buenos resultados de la siguiente manera:

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

    Engine engine; 
    Wheel[4] wheels; 
} 

Si hay MockEngine se suministra por defecto de coches para el uso de la AtomicEngine preferido que es ordenado porque eso es lo que quiero la mayoría del tiempo. También tenga en cuenta que la inyección se realiza en tiempo de compilación sin penalización de tiempo de ejecución para las capacidades de burla, es decir, no se requiere herencia.

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

Pongamos a prueba el coche con un motor roto como este.

+0

Eso es todo muy bien, pero ¿cómo se crea la burla? Eso es lo que el OP está preguntando. –

3
  • DMocks-revived es un marco de objeto de burla para el lenguaje de programación D, escrita también en D.
  • dunit (nomad) avanzada unidad de pruebas kit de herramientas.
Cuestiones relacionadas