私は C# (フィボナッチ ヒープを使用した優先キュー) でデータ構造を作成しており、それをまったく新しい TDD の学習体験として使用しようとしています。
1 つのユニットの失敗が複数のテストの失敗と混同しないように、各テストはクラスの 1 つの部分のみをテストする必要があることは理解していますが、データ構造の状態が重要な場合にこれを行う方法がわかりません。テスト。
例えば、
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
するために省略しました。