Как вернуть вывод Console.Write в виде строки в модульном тесте? - PullRequest
0 голосов
/ 26 мая 2019

У меня есть следующий код, который возвращает вывод «AAlAleAlex» со следующим кодом:

string s = "Alex";

        for (int i = 0; i < s.Length; i++)
        {
            for (int j = 0; j <= i; j++)
            {
                char start = s[j];

                Console.Write("{0}", start);
            }
        }

Тем не менее, я хочу получить вывод Console.Write в строку и вернуть его, но единственное, что я мог придумать, это это, но по какой-то причине он возвращает только первую букву. Как я могу вернуть правильную строку?

Единица измерения:

public string FunnyName(string firstName)
    {
        for (int i = 0; i < firstName.Length; i++)
        {
            for (int j = 0; j <= i; )
            {
                char start = firstName[j];

                //Console.Write("{0}", start);
                firstName = String.Format("{0}", start);
                return firstName;
            }                
        }
        return firstName;
    }

UnitTest:

[TestCase("Alex", "AAlAleAlex")]
    public void FunnyName(string firstName, string expected)
    {
        var actual = warmups.FunnyName(firstName);
        Assert.AreEqual(expected, actual);
    }

1 Ответ

3 голосов
/ 26 мая 2019

Немного трудно ответить на ваш вопрос, но я думаю, вы хотите этого, может быть ??

public string FunnyName(string firstName)
{
    var s = new System.Text.StringBuilder();

    for (int i = 0; i < firstName.Length; i++)
        for (int j = 0; j <= i; j++)
            s.Append(firstName[j]);

    return s.ToString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...