私は TDD の初心者で、NUnit を使用して C# でカード ゲーム アプリケーションのテストを記述しています。
ほとんどの場合、非常に有用であることが証明されていますが、テストしたいことがいくつかありますが、そのためのパブリック プロパティを公開したくありません。
たとえば、新しいカード デッキが、それぞれ 13 枚のカードを含む 4 つのスートで構成されていることをテストできるようにしたいと考えています。次のようになります。
[Test()]
public void ADeckOfCardsHas4Suits()
{
Game game = new Game();
Assert.AreEqual(4, game.Deck.SuitCount);
Assert.AreEqual(13, game.Deck.GetCards(Suit.Spades).Count)
}
SuitCount を使用すると、次のようなものが返されます。
return this.cards.Select(c => c.Suit).Distinct().Count();
GetCards(スーツ スーツ):
return this.cards.where(c => c.Suit == suit);
ただし、API のこれらのプロパティまたはメソッドを UI に公開したくありません (Deck を公開したくない場合もあります) が、それらを公開せずにテストする方法がわかりません。
これを行う一般的に受け入れられている方法はありますか?
乾杯
スチュワート