Estoy empezando con el lenguaje de programación D2. Me encanta el hecho de que las pruebas unitarias son parte del lenguaje en sí, pero parece que no puedo encontrar ninguna biblioteca de objetos falsos para él. ¿Hay uno estándar?¿Qué bibliotecas de objetos falsos hay disponibles para D?
Respuesta
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.
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.
- 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.
Soy el autor de DUnit que contiene una solución burlona. Se utiliza la siguiente manera:
class Foo
{
// Mixin mocking behaviour.
mixin Mockable!(Foo);
}
auto foo = Foo.getMock();
foo
es ahora una maqueta.
La referencia está aquí: http://htmlpreview.github.io/?https://github.com/nomad-software/dunit/master/docs/dunit/mockable.html
Un ejemplo más grande es aquí: https://github.com/nomad-software/dunit/blob/master/source/example.d
- 1. ¿Hay bibliotecas ccTalk disponibles?
- 2. ¿Qué bibliotecas bignum funcionan con D?
- 3. Objetos falsos codificados contra Mocking Framework
- 4. ¿Qué bibliotecas de voz están disponibles en Linux?
- 5. ¿Qué objeto JavaScript existen para mapear bibliotecas de objetos?
- 6. ¿Qué bibliotecas de crawlers web PHP están disponibles?
- 7. ¿Qué bibliotecas de registro alternativas Log4j están disponibles?
- 8. Cómo vincular bibliotecas D en un programa D
- 9. ¿Hay ncurses disponibles para Windows?
- 10. ¿Hay bibliotecas de serialización de objetos Delphi compatibles con Generics?
- 11. Escribiendo un enlace D (D2) para bibliotecas C existentes
- 12. ¿Hay bibliotecas adicionales o herramientas disponibles para el desarrollo de ASP.NET MVC?
- 13. Qué bibliotecas están disponibles para analizar C++ para extraer información de tipo
- 14. ¿Qué opciones hay disponibles para documentar su código Javascript?
- 15. ¿Hay bibliotecas/frameworks para SCons?
- 16. ¿Hay bibliotecas disponibles para realizar LINQ sobre el patrón Entity Attribute Value?
- 17. ¿Cuáles son los principales métodos/bibliotecas disponibles para analizar XML?
- 18. ¿Qué bibliotecas de reconocimiento de texto a voz y voz están disponibles para Clojure?
- 19. ¿Hay importadores de esquema XML alternativos disponibles para Delphi?
- 20. Creación de datos falsos para pruebas unitarias
- 21. ¿Qué bibliotecas de software están disponibles para crear fotomosaicos mediante programación?
- 22. ¿Cuál es el estado actual de las bibliotecas estándar D?
- 23. ¿Hay perfiladores de SQLite disponibles?
- 24. ¿Qué es "-d" en "npm -d install"?
- 25. ¿Cómo crean marcos de burla (en .Net) objetos falsos?
- 26. ¿Hay bibliotecas independientes para Firefox Sync?
- 27. ¿Qué registros de procesos distribuidos están disponibles para Erlang?
- 28. ¿Qué controladores MySQL están disponibles para node.js?
- 29. Soporte D para COM
- 30. Crear compromete falsos de gráfico
Eso es todo muy bien, pero ¿cómo se crea la burla? Eso es lo que el OP está preguntando. –