IlanGreen Ответов: 1

Есть ли какой-либо способ утверждать правильное поведение метода?


I have a method that i need to test all of its branches. I can't find a way to assert the or verify the test is correct because both branches have almost the same behavior. btw - I can't change the given code

I have tried verifying End and Write are called but they are being called in both scenarios.

if (m_FailedOnInitialize)

{

    if (!ctx.Request.IsLocal)

    {

        ctx.Response.Write("Failed on initialization");

        ctx.Response.End();


    }

 else

    {      

            ctx.Response.Write(m_FirstError.ToString());
      ctx.Response.End();
    }
 }


Что я уже пробовал:

*m_FailedOnInitialize Is Static field, i set it to be "true" ctx.Request.IsLocal is set to be true\false in each test

To assert the behavior i use Typemock's verification Isolate.Verify.WasCalled(() => ctx.Response.write("")); Isolate.Verify.WasNotCalled(() => ctx.Response.End());

1 Ответов

Рейтинг:
2

AnotherKen

Непонятно, что вы имеете в виду. Assert используется в C# различными способами как метод, который может быть вызван для предоставления коду более высоких разрешений, чем обычно, или для тестирования переменной и создания исключения, если она содержит неожиданное значение. Возможно, вы сбиваете людей с толку, употребляя это слово.

Вы не можете заставить чужой код работать так, как вы этого хотите. Однако вы можете проверить его вывод, чтобы увидеть, кажется ли он действительным или нет. Вы также можете расширить чужой код, чтобы добавить необходимую функциональность, например, если вы хотите реализовать внутренний тестовый код.