Я пишу структуру данных в С# (очередь приоритетов, используя купон фибоначчи), и я пытаюсь использовать ее как опыт обучения для TDD, который я совершенно новичок.
Я понимаю, что каждый тест должен тестировать только одну часть класса, так что сбой в одном устройстве не путает меня с несколькими неудачами тестирования, но я не уверен, как это сделать, когда состояние структуры данных важен для теста.
Например,
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));
}
Этот тест сломается, если сломается Enqueue или Peek.
Я думал, что смогу каким-то образом провести тест вручную, создав кучу структуры данных, но я не уверен, как это сделать, не подвергая реализацию миру.
Есть ли лучший способ сделать это? Опирается на другие части?
EDIT: у меня есть SetUp на месте, просто оставил его для простоты.