如何断言控制台的结果与预期的相同

本文关键字:结果 控制台 何断言 断言 | 更新日期: 2023-09-27 18:10:38

我已经实现了代码,我必须对它进行单元测试。我有一个Display()方法,最后在控制台中打印。因此,为了测试它,我必须断言在控制台中打印的结果与预期一致。下面是Display()方法

 public void Display(int[] playerPosition)
        {
            StringBuilder matrixAsStringBuilder = new StringBuilder();
            for (int row = 0; row < this.Rows; row++)
            {
                for (int col = 0; col < this.Cols; col++)
                {
                    if (playerPosition[1] == row && playerPosition[0] == col)
                    {
                        matrixAsStringBuilder.Append(this.PlayerSymbol);
                    }
                    else
                    {
                        matrixAsStringBuilder.Append(this.matrix[row, col]);
                    }
                    if (col < this.Cols - 1)
                    {
                        matrixAsStringBuilder.Append(" ");
                    }
                }
                matrixAsStringBuilder.Append("'n");
            }
            Console.WriteLine(matrixAsStringBuilder.ToString());
        }

我如何验证控制台的结果是否符合我的期望?再次感谢!

如何断言控制台的结果与预期的相同

你没有。让Display返回一个String,然后用一个单独的方法将该字符串输出到控制台。你知道Console.WriteLine()工作,所以你只需要测试你的方法来处理。

这也符合一般的编程准则:让一个方法做一件事。它不应该既处理数据又打印数据,至少因为这是对方法命名的诅咒:你称它为"Display",但实际上它做的不仅仅是显示。