C # Assert.AreEqual с несколькими проверками - PullRequest
0 голосов
/ 30 мая 2018

Я немного растерялся.Я пишу тест, который требует нескольких проверок.Так, например, мне нужно подтвердить, что данные верны, статус моего элемента и название меры.Чтобы это произошло, могу ли я использовать Assert.AreEqual с операторами if?

Я вставил свой метод ниже.

public void validateInventoryMeasurement(string Data, string itemStatus)
{
   var actual = 
   var expected =

   Assert.AreEqual(, actual);
   Console.WriteLine("Assertion pass");
}

1 Ответ

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

Если я правильно понимаю ваш вопрос, вы спрашиваете, можете ли вы использовать Assert.AreEqual() более одного раза в одном тесте.Ответ в том, что вы определенно можете;следует или нет, это другой вопрос:

public void validateInventoryMeasurement(string Data, string itemStatus)
{
    // Arrange
    var expected = 10;
    int anotherValue = 0;

    // Act
    var actual = Calculatevalue(ref anotherValue);

    // Assert
    Assert.AreEqual(expected, actual); // Will trigger the unit test to fail if the assertion is not met
    Assert.AreEqual(5, anotherValue); // Will trigger the unit test to fail, assuming that the above condition is met
 }

Если вам нужно сделать это, то может быть лучший способ структурировать ваш код, чтобы вы могли иметь одно действие и одно утверждение, котороеИМХО делает тест более понятным и легким для чтения.

Исходя из дальнейших комментариев, вам может потребоваться декоратор TestCase.Это позволяет вам создать один фрагмент кода, который выполняется один раз для каждой переменной, определенной в TestCase.Например:

[TestCase("data1","status1", "valid")]
[TestCase("data2","status2", "invalid")]
[TestCase("data3","status3", "valid")]
[TestCase("data1","status1", "valid")]
public void validateInventoryMeasurement(string Data, string itemStatus, string expectedresult)
{
    // Arrange
    var expected = expectedresult;

    // Act
    var actual = Calculatevalue();

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