gpt4 book ai didi

c# - 使用 Assert 的单元测试用例

转载 作者:行者123 更新时间:2023-11-30 20:51:14 29 4
gpt4 key购买 nike

我的场景是从一副牌中抽取指定数量的牌,并按排序顺序(首先按花色,然后按面值)返回。

<param name="howMany">how many cards to draw.
<returns>a list of drawn cards, sorted by suit and face value (rank)</returns>

我已经编写了这个方法来实现它。我必须为它编写一个单元测试代码。对此有什么可能的单元测试,因为它有一个要比较的列表以及如何实现它。

public List<Card> DrawSorted(int howMany)
{
List<Card> drawnCards = _cards.Take(howMany).ToList();
IEnumerable<Card> sortedCards = from card in drawnCards
orderby card.Order ascending
select card;
return sortedCards.ToList();
}

非常感谢任何帮助

最佳答案

你应该让测试尽可能简单,并且应该在这里做几个测试:

一些粗略的想法:

  • 验证您抽取并返回正确数量的卡片
  • 一个检查如果你抓牌的顺序是正确的,你仍然会以正确的顺序拿回它们
  • 检查顺序不正确的卡片是否会按正确顺序退回。

检查顺序的一种简单方法是抽取少量卡片(甚至可能只有两张?),然后进行比较;这将使您保持测试逻辑尽可能简短,同时仍然能够在出现问题时发出警告。

当然,更好的过程是首先以测试的形式指定您最简单的需求,然后一点一点地使它们更高级,同时在您的方法中添加逻辑。然后你可能会有这样命名的测试(你可能会猜到它们可能包含什么):

public void should_return_correct_nr_of_cards(){ ... }

public void should_return_presorted_cards_in_correct_order(){ ... }

public void should_return_unsorted_cards_sorted(){ ... }

关于c# - 使用 Assert 的单元测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21928004/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com