2016-08-28 5 views
1

Я создал тестовый проект блока для моего CalculatorApp и добавил приложение в качестве справочного материала для моего UniTest проектТест блока не видит мои методы

Моего кода выглядит следующим образом:

using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using CalculatorApp; 


    namespace CalculatorUnitTests 
    { 
     [TestClass] 
     public class UnitTest1 
     { 
      [TestMethod] 
      public void TestAddMethod() 
      { 
       decimal firstTestNumber = 7; 
       decimal secondTestNumber = 3; 
       decimal resultTest = 10; 


       Assert.AreEqual(resultTest, AddMethod(firstTestNumber, secondTestNumber)); 

      } 
    } 

Но это говорит, что AddMethod не существует в текущем контексте.

Что мне не хватает? (у меня нет большого опыта работы с unitTests) Я использую сообщество Visual Studio 2015.

+3

По той же причине вы не можете просто позвонить 'AddMethod' из любого случайного места: вам нужна ссылка на окружающий объект и назвать его как надлежащий способ вызова. –

+0

Вы никогда не создавали экземпляр «CalculatorApp». Я не уверен, почему вы ожидали 'AddMethod (firstTestNumber, secondTestNumber)' для работы? –

ответ

2

Как уже упоминалось в Jeroen, вам нужен экземпляр класса калькулятора, который вы хотите проверить. Попробуйте изменить свой тест таким образом, как это:

[TestMethod] 
public void TestAddMethod() 
{ 
    decimal firstTestNumber = 7; 
    decimal secondTestNumber = 3; 
    decimal expected = 10; 

    // create an instance of your system under test (sut) 
    var sut = new CalculatorApp.Calculator(); 

    // invoke the method, you want to test and keep the actual result 
    var actual = sut.AddMethod(firstTestNumber, secondTestNumber) 

    Assert.AreEqual(expected, actual); 
} 
Смежные вопросы