gpt4 book ai didi

c# - 集成测试和 TDD

转载 作者:太空宇宙 更新时间:2023-11-03 18:47:01 26 4
gpt4 key购买 nike

我对井字游戏进行了首次集成测试:

[TestClass]
public class FirstIntegrationTest
{
[TestMethod, TestCategory("Integration Tests")]
public void Standard_TicTacToe_Game_PlayerO_Wins()
{
IPlayer playerO = new Player();
IPlayer playerX = new Player();

Game game = new Game(playerO, playerX);
game.Start();

playerO.Play(new Point(0, 0));
playerX.Play(new Point(2, 2));
playerO.Play(new Point(1, 0));
playerX.Play(new Point(1, 2));
playerO.Play(new Point(2, 0));

Assert.IsTrue(game.IsOver);
Assert.IsTrue(playerO.HasWon);
Assert.IsFalse(playerX.HasWon);
}
}

稍后我将至少添加另一个负责向用户显示游戏面板的内容。对于当前的,我只对上面显示的内容感兴趣。

在做集成测试时(我想这是一个集成测试?)我应该做什么样的单元测试?我应该只做最低限度以使集成测试通过吗?如果是这样,我只需要让 Game 类将其第一个 IPlayer HasWon 设置为 true,将第二个设置为 false。如果我通过集成测试来驱动我的设计,那么单元测试的意义何在?

我的想法是,通常您不会进行很多集成测试。那么,我应该通过集成测试还是通过单元测试来驱动我的设计?

最佳答案

算法总是最难测试的,因为要真正确保它有效,您必须测试每一种可能的组合。实际上,由您决定在哪里划清界限。

您这里有一个高级验收测试。

可能的单元测试是:

  • 确保玩家只能交替轮流
  • 确保玩家不能同时标记坐标
  • 确保识别垂直、对角线和水平方向的胜利(可以在这里测试所有 8 种可能性)

关于c# - 集成测试和 TDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3475908/

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