我将如何对纸牌游戏的交易功能执行基于 属性 的测试?
How would I perform property-based testing on a card game's Deal function?
我正在研究基于 属性 的测试,我很好奇如何将这种类型的测试应用于 BlackJack 游戏的发牌功能。
这是一个单元测试(又名:基于示例的测试):
[<Test>]
let ``deal two cards`` () =
let hand = 2
let dealPlayer cardCount =
[for i in [1..cardCount] -> shuffleDeck.Pop]
|> Seq.toList
(dealPlayer hand).Length |> should equal (2)
基于 属性 的测试示例是什么?
我会测试两张牌在4花色范围内吗?
(即黑桃、方块、红桃、梅花)
依赖静态类型对我来说不是已经确保了吗?
我会测试两张牌是在数字还是面的范围内?
(即 2..10;Jack;Queen;King;Ace)
同样,依赖静态类型是否已经确保对我而言?
同样,在对二十一点游戏执行基于 属性 的测试时,我应该考虑什么?
如果您使用 algebraic data types 对域(在本例中为纸牌游戏)建模,类型系统会为您处理很多事情。
已经有卡牌游戏建模的例子 and ,但本质上,你可以这样建模:
type Suit = Diamonds | Hearts | Clubs | Spades
type Face =
| Two | Three | Four | Five | Six | Seven | Eight | Nine | Ten
| Jack | Queen | King | Ace
type Card = { Suit: Suit; Face: Face }
这 使非法状态无法表示 ,这意味着测试 Suit
是否是 Diamonds
之一甚至没有意义,Hearts
、Clubs
或 Spades
;这些是它可以拥有的唯一值。
what should I consider when performing property-based tests for a blackjack game?
我不知道,那是你想知道的(我也不知道二十一点的规则),但这里有一个 example of property based testing applied to the tennis rules。
运动和游戏往往是 属性 基础测试的简单目标,因为游戏规则映射到属性。
一般来说,属性是域的不变量。 假设满足某些先决条件,当你行使SUT,然后某些后置条件应该持有。
您也可以考虑观看我的 Introduction to Property-based Testing with F# Pluralsight 课程。
我正在研究基于 属性 的测试,我很好奇如何将这种类型的测试应用于 BlackJack 游戏的发牌功能。
这是一个单元测试(又名:基于示例的测试):
[<Test>]
let ``deal two cards`` () =
let hand = 2
let dealPlayer cardCount =
[for i in [1..cardCount] -> shuffleDeck.Pop]
|> Seq.toList
(dealPlayer hand).Length |> should equal (2)
基于 属性 的测试示例是什么?
我会测试两张牌在4花色范围内吗? (即黑桃、方块、红桃、梅花) 依赖静态类型对我来说不是已经确保了吗?
我会测试两张牌是在数字还是面的范围内? (即 2..10;Jack;Queen;King;Ace) 同样,依赖静态类型是否已经确保对我而言?
同样,在对二十一点游戏执行基于 属性 的测试时,我应该考虑什么?
如果您使用 algebraic data types 对域(在本例中为纸牌游戏)建模,类型系统会为您处理很多事情。
已经有卡牌游戏建模的例子
type Suit = Diamonds | Hearts | Clubs | Spades
type Face =
| Two | Three | Four | Five | Six | Seven | Eight | Nine | Ten
| Jack | Queen | King | Ace
type Card = { Suit: Suit; Face: Face }
这 使非法状态无法表示 ,这意味着测试 Suit
是否是 Diamonds
之一甚至没有意义,Hearts
、Clubs
或 Spades
;这些是它可以拥有的唯一值。
what should I consider when performing property-based tests for a blackjack game?
我不知道,那是你想知道的(我也不知道二十一点的规则),但这里有一个 example of property based testing applied to the tennis rules。
运动和游戏往往是 属性 基础测试的简单目标,因为游戏规则映射到属性。
一般来说,属性是域的不变量。 假设满足某些先决条件,当你行使SUT,然后某些后置条件应该持有。
您也可以考虑观看我的 Introduction to Property-based Testing with F# Pluralsight 课程。