Конструктор по типу не найден ошибка в privateobject
Я пишу модульный тест для расчета software.in тестовый случай я использовал "PrivateObject "для доступа к закрытому методу" sendNumberToCalculation ()", но я получаю конструктор ошибок по типу не найден.
public class CalculationTest { [TestMethod] public void sendNumberToCalculationTest() { // -- Act PrivateObject obj = new PrivateObject(typeof(Calculation)); Tokenization token = new Tokenization("5*10-18/(3+19)"); PolishNotation polish = new PolishNotation(token.MathExpressionParser()); double expected = 49.19; // -- Actual double actual = Convert.ToDouble(obj.Invoke("sendNumberToCalculation", polish)); // -- Assert Assert.AreEqual(expected, actual); } } public class Calculation { private Tokenization token; private PolishNotation polish; private Stack<double> numbers = new Stack<double>(); private Stack<string> operators = new Stack<string>(); public Calculation(string expression) { token = new Tokenization(expression); polish = new PolishNotation(token.MathExpressionParser()); } private double sendNumberToCalculation() { int number; int number1 = 0; int number2 = 0; string operatorName = ""; int counter = 1; foreach (var item in polish.InfixToPostfix()) { numbers.Push(Convert.ToDouble(item)); if (!int.TryParse(item, out number)) { operators.Push(item); while (counter <= 2 && numbers.Count > 1) { if (counter == 1) { number2 = Convert.ToInt32(numbers.Pop()); } else if (counter == 2 && operators.Count > 0) { number1 = Convert.ToInt32(numbers.Pop()); operatorName = operators.Pop(); } } } operatorDetect(number1, number2, operatorName); } var result = numbers.Pop(); return result; } private void operatorDetect(int number1, int number2, string operatorName) { switch (operatorName) { case "+": Add(number1, number2); break; case "*": Multipy(number1, number2); break; case "/": Divide(number1, number2); break; case "-": Subtract(number1, number2); break; } } private void Add(int number1, int number2) { double number = number1 + number2; numbers.Push(number); } private void Multipy(int number1, int number2) { double number = number1 * number2; numbers.Push(number); } private void Subtract(int number1, int number2) { double number = number1 / number2; numbers.Push(number); } private void Divide(int number1, int number2) { double number = number1 - number2; numbers.Push(number); } }
Что я уже пробовал:
я получаю конструктор ошибок по типу не найден, и я хочу исправить эту ошибку.