我有一个单元测试我想命名参数,例如:
[TestMethod]
public void Register(bool DoSeed = false, AccountViewModelForReg VM = null)
{
AutoMapperConfig.Configure(); //TODO move to global
AccountController C = new AccountController();
VM = new AccountViewModelForReg()
{
Username = "testuser1",
Password = AccountHelper.HashPassword("a"),
Email = "testuser1"+CommonEmailSuffix,
Email2 = "testuser1"+CommonEmailSuffix
};
var Result = C.Register(VM, true) as ViewResult;
Assert.AreEqual("Register", Result.ViewName);
}
我的EF Seeder就是这样,我可以通过传入参数来使用单元测试来播种。但是因为该方法需要参数,所以Visual Studio不会将其视为要运行的测试。我怎么能绕过这个?
答案 0 :(得分:1)
AFAIK,VS单元测试不支持参数化单元测试 你唯一的方法是编写另一个无参数的重载并从那里调用你的方法。顺便说一句:可选参数只不过是语法糖;该方法仍然需要参数。
示例:
public void Test_One(bool p1, string p2)
//...
public void Test_One()
{
Test_One(true, "defaultvalue");
}
你应该看看另一个框架,例如NUnit,允许您轻松地对测试进行参数化(即使是范围,参数的自动组合等):请参阅http://nunit.org/index.php?p=parameterizedTests&r=2.5
答案 1 :(得分:1)