我想在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;
答案 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)
代码工作正常,但测试失败
任何解决方案?