Необязательный параметр в Unittest - PullRequest
1 голос
/ 03 марта 2011

Я хотел бы протестировать метод с необязательными параметрами в MSTest.

private CalcSomthing(double valueone, double valuetwo = 10) 
{ 
   // Do somthing 
}

Когда я вызываю этот метод, он работает нормально. Но когда я запускаю его в Unittest (MSTest), Valuetwo не будет инициализироваться значением 10.

MSTest не может проверить необязательный параметр или я ошибаюсь?

    [TestMethod]
    public void CalcSomthingTest()
    {
        var someclass= new Someclass_Accessor();
        someclass.CalcSomthing(10);
    }

Результат: Valueone = 10 и ValueTwo = 0.0;

Ответы [ 2 ]

0 голосов
/ 23 марта 2011

Согласна, это проблема.

Сделайте указанный выше метод закрытым, а затем генерируется SomeClass_Accessor, метаданные только для чтения, для которых выставляется подпись

public double CalcSomthing (double valueone, double valuetwo = null)

Код работает нормально, но тест не пройден

Какие-нибудь решения?

0 голосов
/ 05 марта 2011

Этот тест проходит в Visual Studio 2010:

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace TestProject1
{
    public class Someclass
    {
        public double CalcSomthing(double valueone, double valuetwo = 10)
        {
            Assert.IsTrue(valuetwo == 10);
            return valueone + valuetwo;
        }
    }

    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void CalcSomthingTest()
        {
            var someclass = new Someclass();
            someclass.CalcSomthing(10);
        } 
    }
}

в ReSharper или TestRunner:

------ Тест запущен: сборка: TestProject1.dll ------

1 пройдено, 0 не выполнено, 0 пропущено, заняло 1,14 секунды (MSTest 10.0).

...