Считает ли покрытие заявления ложным, если заявления?

При проверке покрытия выписки для моего кода:

 double programme(double x, double y)
 {
    double z 
    if(x>=5){
      z = 15;
    }
    else if(x>=3){
      z= 10;
    }
    else {
      z=0;
    }
    if (y>z)
    {
      z=y;
    }

    return z;
}

с использованием двух тестовых случаев (например, тест 1: x = 6, y = 10 и тест 2: = 3, y =5)

Я не уверен, что покрытие заявления равно 100% или 66%, основываясь на том факте, что я не уверен, считали ли вы последнее утверждение if, поскольку оно ложно оба раза.

1 ответ

Решение

В вашем методе есть восемь операторов - три условия, четыре назначения и return:

  1. if (x>=5)
  2. z=15
  3. if (x>=3)
  4. z=10
  5. z=0
  6. if (y>z)
  7. z=y
  8. вернуть

Первый тестовый пример охватывает операторы 1, 2, 6 и 8. Второй тестовый пример охватывает 1, 3, 4, 6 и 8. Поэтому операторы 1, 2, 3, 4, 6 и 8 охватываются 6 из 8 или 75% покрытия.

Другие вопросы по тегам