gpt4 book ai didi

c# - 如何使用 Moq 验证字符串数组中的值是否已设置

转载 作者:行者123 更新时间:2023-11-30 17:01:58 29 4
gpt4 key购买 nike

我有一个 Game 类,它依赖于一个对象,该对象具有 string[,] 类型的属性 Squares

我想验证调用 Games.Play 方法会尝试在依赖项的 Squares 数组中适本地设置一个值(例如,在 2D 中设置空值下面的数组)。

var _grid = new Mock<IGrid>();
_grid.Setup(g => g.Squares).Returns({{"O", "O",null}});
var game = new Game(_x0Grid.Object);

var oblivion = game.Play();

_grid.VerifySet(g => g.Squares[0, 2] = It.IsAny<string>());

但是尝试验证以上抛出:

System.MissingMethodException : Constructor on type 'System.String[,]' not found.

关于我如何使用最小起订量验证上述内容有什么建议吗?

最佳答案

VerifySet 用于测试是否设置了 mock 上的属性。它无法检测数组的元素是否已更改。我的建议是改为测试数组的内容:

var array = new string[,] { {"O", "O", null } };
var _grid = new Mock<IGrid>();
_grid.Setup(g => g.Squares).Returns(array);
var game = new Game(_grid.Object);

var oblivion = game.Play();

Assert.IsNotNull(array[0, 3]);

关于c# - 如何使用 Moq 验证字符串数组中的值是否已设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483057/

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