Модульный тест Async await метод assert завершается неудачно, если вызывается (Run all test), но тестирование проходит, если я запускаю один за другим - PullRequest
0 голосов
/ 23 мая 2018

Юнит-тест Метод async await assert завершается ошибкой, если вызывается (Run all test), но тест проходит, если я запускаю один за другим.

Каждый метод не зависит друг от друга.

Метод модульных испытаний:

[TestMethod]
public async Task GetDataById()
{
    ////Act.
    var output = await Service.GetDataByID(1);
    ////Assert.
    Assert.IsNotNull(output);
    ////Act.
    output = await Service.GetDataByID(2);
    ////Assert.
    Assert.IsNull(output);
}

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Это был метод CreatePersistent () Effort.DbConnectionFactory, я изменил его на CreateTransient (), теперь он работает.

Спасибо за помощь, ребята.

0 голосов
/ 23 мая 2018

если у вас есть какие-либо настройки макета перед каждым тестом, затем сбрасывайте эти макеты после каждого (TearDown).

  1. избегайте совместного использования переменной или состояния в асинхронном контексте

```

[TestMethod]
public async Task GetDataById()
{
     ////Act.
    var output = await Service.GetDataByID(1);
     ////Assert.
    Assert.IsNotNull(output);
     ////Act.
    var output2 = await Service.GetDataByID(2); // <-- new variable
    ////Assert.
    Assert.IsNull(output2);
}

` ``

Подтверждение только "одной вещи" несколько утверждений в порядке, только один результат от одного действия

`` `

[TestMethod]
public async Task GetDataByIdWhenExists()
{
     //Act.
    var output = await Service.GetDataByID(1);
     ////Assert.
    Assert.IsNotNull(output);
}

[TestMethod]
public async Task GetDataByIdWhenNotExists()
{
     //Act.
    var output = await Service.GetDataByID(2);
     //Assert.
    Assert.IsNotNull(output);
}

` ``

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