Al principio, cada gema tiene un diseño típico. El código está casi completamente en lib
. En el directorio raíz, solo hay metadatos como READMEs, el archivo gemspec
y algunos datos de configuración opcionales. Si escribe una aplicación web con algo como Rails o Sinatra, sus estándares de diseño se usan en su lugar
En todos los tipos de proyectos, las pruebas se pueden encontrar en lugares similares. Según el marco de prueba que utilice, existen diferentes estándares.
Si usa Test::Unit, las pruebas se encuentran en un directorio test
. No existen estándares reales sobre cómo organizar realmente los archivos de prueba en ese directorio. Personalmente, me pareció útil reflejar al menos parcialmente el diseño de archivo del código probado. Si usa módulos/espacios de nombres generosamente, eso debería hacerlo bastante legible.
Si usa RSpec, las pruebas (luego llamadas especificaciones) van a un directorio spec
. Las notas anteriores sobre el diseño de las pruebas reales también se aplican aquí.
Al final, es principalmente una decisión de los desarrolladores cómo configurar sus pruebas. Como las pruebas son un área donde cualquier persona tiene opiniones diferentes (y de cuerdas), no hay un camino sagrado hacia el éxito. Deberías echarle un vistazo a algunas gemas que usas y cómo hacen esas cosas. Se puede encontrar un ejemplo de diseños de Test :: Unit en las gemas de Rails, p. para ActiveRecord. Un ejemplo para las pruebas de RSpec es el complemento chiliproject_backlogs para ChiliProject.
@nash: Este es el primer comentario que leí en SO que encontré grosero. –
Lo siento, fue realmente grosero. Trataré de resolverlo. Por ejemplo, puede consultar la carpeta de especificaciones rspec aquí (https://github.com/rspec/rspec-core/tree/master/spec). Estos tipos realmente saben cómo escribir especificaciones. Lo siento de nuevo. –