Создание теста и обработка исключения - 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;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д