Модульный тест класса

152
13 октября 2021, 01:30

при написании модульного теста возникает ошибка "object не содержит определения для qwerty"

код библиотечной функции

namespace ClassKatet 
{
    public static class Katet {
    /// <param name="c"></param>
    /// <param name="a"></param>
    /// <returns></returns>
    public static double qwerty(double c, double a) 
    {
      return Math.Sqrt(Math.Pow(c, 2) - Math.Pow(a, 2));
    }
  }
}

код модульного теста

namespace UnitTestProject3
{
    [TestClass]
    public class UnitTest1
    {
        private int actual;

        public object Katet { get; private set; }
        [TestMethod]
        public void TestMethod1()
        {
            // arrange
            int c = 9;
            int a = 5;
            int result = 7;
            // act
            var actual = Katet.qwerty(c, a);
            // assert
            Assert.AreEqual(result, actual);
        }
    }
}

как исправить?

Answer 1

Уберите эту строчку

public object Katet { get; private set; }

У вас же класс статический, зачем вам экземпляр, который вы даже не инициализируете, и тем более храните как object - естественно object ничего не знает об методе qwerty. И вообще равен null

READ ALSO
Стоит ли боятся DownCast&#39;а(конкретизация типа)?

Стоит ли боятся DownCast'а(конкретизация типа)?

Допустим, есть 3 интерфейса:

146
конфликт при миграции Code First

конфликт при миграции Code First

Подскажите в чем может быть проблема, вылетает ошибка при миграции на добавление связи между таблицами

136
Как можно сформировать проверку на строку?

Как можно сформировать проверку на строку?

У меня есть проверка такого рода GetName если находит подходящую строчку в тексте path то возвращает определённый текст

216
Сборщик мусора собрал делегат который передавался в неуправляемый код, как этого не допустить?

Сборщик мусора собрал делегат который передавался в неуправляемый код, как этого не допустить?

В общем, отлаживал библиотекурешил поставить музыку которая идет в потоке на паузу, и отойти на минут 10

80