Я пишу структуру данных в C # (приоритетная очередь, использующая кучу fibonacci ), и я пытаюсь использовать ее в качестве учебного процесса для 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
.
Я думал, что я мог бы каким-то образом настроить тест вручную для настройки кучи базовой структуры данных, но я не уверен, как это сделать, не раскрывая реализацию миру.
Есть ли лучший способ сделать это? Можно ли полагаться на другие части?
У меня есть SetUp
на месте, просто упустил его для простоты.