Создание теста и обработка исключения - C#

Узнай цену своей работы

Формулировка задачи:

Есть некая библиотека:
Листинг программы
  1. namespace ClassLibrary1
  2. {
  3. public static class tringle
  4. {
  5. public const string ChypotenuseMessageZero = "Значение меньше нуля";
  6. public const string ChypotenuseMessageNull = "Данные не введены";
  7. public static double Сhypotenuse(double a, double b)
  8. {
  9. if (a <= 0 || b <= 0)
  10. {
  11. throw new ArgumentOutOfRangeException("a. b", ChypotenuseMessageZero);
  12. }
  13. if((object)a == null || (object)b == null)
  14. {
  15. throw new ArgumentNullException("a, b", ChypotenuseMessageNull);
  16. }
  17. double c = Math.Sqrt((a * a) + (b * b));
  18. return c;
К которой нужно написать тесты. Тест на проверку больше 0 я написал, а вот с проверкой на значение null возникли ошибки. Подскажите что не так ? Код компилируется, но тест выполняется с ошибкой.
Листинг программы
  1. [TestMethod]
  2. public void Test_Tringle_Сhypotenuse_Null()
  3. {
  4. //arrange
  5. double? a1 = null;
  6. double a = (double)a1;
  7. double? b1 = null;
  8. double b = (double)b1;
  9.  
  10. try
  11. {
  12. //act
  13. double actual = tringlehypotenuse(a, b);
  14. }
  15. catch (ArgumentNullException ex)
  16. {
  17. //assert
  18. StringAssert.Contains(ex.Message, tringle.ChypotenuseMessageNull);
  19. return;
  20. }
Тест ругается на System.InvalidOperationException (нулевой объект должен иметь значение) и не проходит. Что и как исправить ?

Решение задачи: «Создание теста и обработка исключения»

textual
Листинг программы
  1. namespace ClassLibrary1
  2. {
  3.     public static class tringle
  4.     {
  5.         public const string ChypotenuseMessageZero = "Значение меньше нуля";        
  6.         public  static double Сhypotenuse(double a, double b)
  7.         {
  8.             if (a <= 0)throw new ArgumentOutOfRangeException("a", ChypotenuseMessageZero);
  9.             if (b <= 0) throw new ArgumentOutOfRangeException("b", ChypotenuseMessageZero);
  10.                      
  11.            
  12.             double c = Math.Sqrt((a * a) + (b * b));
  13.             return c;
  14.        
  15.         }
  16.          public static double Stringle (double a, double b, double c)
  17.          {
  18.              double p = (a + b + c) / 2d;
  19.              double s = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
  20.              return s;
  21.          }
  22.        
  23.     }
  24. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут