Создание теста и обработка исключения - C#
Формулировка задачи:
Есть некая библиотека:
К которой нужно написать тесты.
Тест на проверку больше 0 я написал, а вот с проверкой на значение null возникли ошибки. Подскажите что не так ?
Код компилируется, но тест выполняется с ошибкой.
Тест ругается на System.InvalidOperationException (нулевой объект должен иметь значение) и не проходит.
Что и как исправить ?
namespace ClassLibrary1 { public static class tringle { public const string ChypotenuseMessageZero = "Значение меньше нуля"; public const string ChypotenuseMessageNull = "Данные не введены"; public static double Сhypotenuse(double a, double b) { if (a <= 0 || b <= 0) { throw new ArgumentOutOfRangeException("a. b", ChypotenuseMessageZero); } if((object)a == null || (object)b == null) { throw new ArgumentNullException("a, b", ChypotenuseMessageNull); } double c = Math.Sqrt((a * a) + (b * b)); return c;
[TestMethod] public void Test_Tringle_Сhypotenuse_Null() { //arrange double? a1 = null; double a = (double)a1; double? b1 = null; double b = (double)b1; try { //act double actual = tringle.Сhypotenuse(a, b); } catch (ArgumentNullException ex) { //assert StringAssert.Contains(ex.Message, tringle.ChypotenuseMessageNull); return; }
Решение задачи: «Создание теста и обработка исключения»
textual
Листинг программы
namespace ClassLibrary1 { public static class tringle { public const string ChypotenuseMessageZero = "Значение меньше нуля"; public static double Сhypotenuse(double a, double b) { if (a <= 0)throw new ArgumentOutOfRangeException("a", ChypotenuseMessageZero); if (b <= 0) throw new ArgumentOutOfRangeException("b", ChypotenuseMessageZero); double c = Math.Sqrt((a * a) + (b * b)); return c; } public static double Stringle (double a, double b, double c) { double p = (a + b + c) / 2d; double s = Math.Sqrt(p * (p - a) * (p - b) * (p - c)); return s; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д