gpt4 book ai didi

c# - 单元测试控制台输入和随机数

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:11 25 4
gpt4 key购买 nike

我有一个回合制游戏的逻辑模块(还没有 UI),它使用异步用户输入(从控制台解析,直到完成真正的 UI),并且在某些情况下生成随机数(“die rolls”)并根据输入和随机数改变游戏状态模型。

阅读 this threadthis thread ,我想知道是否可以使用类似的东西。我的游戏逻辑只有一个 Random 实例,因此将它换掉应该相对容易。

那我该怎么办?

  • 将 GameLogic.Random 换成 IRandom,然后根据我是否正在测试将随机序列或预生成序列放入其中
  • 在我的命令解析器中将 Console.ReadLine() 替换为 IConsole.ReadLine(),这样我就不必每次都输入它了
  • 将 Console.WriteLine() 替换为 IConsole.WriteLine(),以便它打印到一个文件,我可以在其中读取结果

然后我可以使用单元测试中的类?就这些??

最佳答案

是的,仅此而已,但如果您不想这样做,您甚至不必这样做。

您不必创建接口(interface) IConsole,因为在某种程度上,它已经存在。您可以使用 TextReader 进行输入,使用 TextWriter 进行输出。在实际应用中,您传入 Console.InConsole.Out。在测试中,您可以使用 StringReaderStringWriter

如果您不想自己提供数字,您也不必创建 IRandom 并且初始化为常量种子的 Random 对您来说就足够了。

关于c# - 单元测试控制台输入和随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6236311/

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