Unittest中的可选参数

时间:2011-03-03 08:53:51

标签: c#-4.0 mstest unit-testing

我想在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 :(得分:0)

此测试在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)。

答案 1 :(得分:0)

同意这是一个问题。

将上述方法设为私有,然后生成SomeClass_Accessor,为其公开签名的只读元数据

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

代码工作正常,但测试失败

任何解决方案?