Я пишу структуру данных в C# (очередь приоритетов с использованием fibonacci heap), и я пытаюсь использовать ее в качестве учебного опыта для 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 на месте, просто оставил его для простоты.
upvote для уточнения - и написание моего имени право ;-) – 2008-10-16 03:31:43
Итак, как мне получить доступ к этому частному аксессуару? Отражение? или InternalsVisibleTo магия? – 2008-10-16 03:33:35