Estoy escribiendo una estructura de datos en C# (una cola de prioridad usando un fibonacci heap) y estoy tratando de usarlo como una experiencia de aprendizaje para TDD, que soy bastante nuevo.Unidad de prueba de una estructura de datos
Entiendo que cada prueba solo debe probar una parte de la clase para que una falla en una unidad no me confunda con varias fallas de prueba, pero no estoy seguro de cómo hacerlo cuando el estado de los datos la estructura es importante para una prueba.
Por ejemplo,
private PriorityQueue<int> queue;
[SetUp]
public void Initialize()
{
this.queue = new PriorityQueue<int>();
}
[Test]
public void PeekShouldReturnMinimumItem()
{
this.queue.Enqueue(2);
this.queue.Enqueue(1);
Assert.That(this.queue.Peek(), Is.EqualTo(1));
}
Esta prueba se rompería si bien Enqueue o Peek se rompió.
Estaba pensando que de alguna manera podría hacer que la prueba configure manualmente el montón de la estructura de datos subyacente, pero no estoy seguro de cómo hacerlo sin exponer la implementación al mundo.
¿Hay una mejor manera de hacerlo? ¿Confiar en otras partes está bien?
EDIT: Tengo una configuración en su lugar, simplemente lo dejé fuera por simplicidad.
upvote para ser más específico - y escribir mi nombre correctamente ;-) –
Entonces, ¿cómo iba a acceder a este acceso privado? ¿Reflexión? o la magia de InternalsVisibleTo? –
uso InternalsVisibleTo –