поэтому я хочу проверить результаты броска набора игральных костей, но я не могу передать массив в качестве аргумента в методе возврата следующим образом:
[TestCase(new[]{2, 2, 3, 1, 5}, Category.Yahtzee, 0)]
public void AddPoints_ForGivenCategory_PointsAreStored(
int[] rollResults, Category selectedCategory, int expectedScore)
{
_randomizer.GetRandomNumber(MIN_VALUE, MAX_VALUE).Returns(rollResults); //<-rollResults not allowed
IDice[] dice = MakeNewDiceSet();
_game.NewGame("A");
_game.RollDice(dice);
_game.AddPoints(selectedCategory);
var result = _game.GameStatus().First()[selectedCategory];
Assert.AreEqual(expectedScore, result);
}
любые советы или обходные пути для этой проблемы? Или я вынужден сделать это:
[TestCase(2, 2, 3, 1, 5, Category.Yahtzee, 0)]
public void AddPoints_ForGivenCategory_PointsAreStored(
int die1, int die2, int die3, int die4, int die5, Category selectedCategory, int expectedScore)
{
_randomizer.GetRandomNumber(MIN_VALUE, MAX_VALUE).Returns(die1, die2, die3, die4, die5);
IDice[] dice = MakeNewDiceSet();
/ ...
}
Использование NSubstitute v3.1.0.0
_randomizer.GetRandomNumber(MIN_VALUE, MAX_VALUE)
возвращает одно число или массив? - person Nkosi   schedule 04.05.2018int[]
и пытается вернуть его как результат, который потерпит неудачу, поскольку он ожидает одиночное целое число. вы можете попробовать вернуть функцию в качестве обходного пути, используя счетчик для индекса массива. - person Nkosi   schedule 04.05.2018