我是MVC3的新手,对单元测试部分不熟悉。我一直试图通过接受3整数值来构造具有异常处理功能的日期时间,但是它没有通过单元测试。林不知道我做的是否正确。从MVC3中的3个整数构造日期时间
这是控制器部分:
public DateTime MakeDate(string dateString)
{
DateTime myDate;
if (DateTime.TryParseExact(dateString, "yyyy-MM-dd", new CultureInfo("en-US"), DateTimeStyles.None, out myDate))
{
return myDate;
}
return new DateTime();
}
这是单元测试:
[TestMethod]
public void MakeDateConstructsADateTimeFromYearMonthAndDay()
{
//Arrange
var controller = new DateController();
var expected = new DateTime(2014, 6, 30);
//Act
var result = controller.MakeDate(2014, 6, 30);
//Assert
Assert.AreEqual<DateTime>(expected, result);
}
[TestMethod]
public void MakeDateReturnsDefaultDateTimeIfInputDataInvalid()
{
var controller = new DateController();
var expected = new DateTime();
//Act
//June has only 30 days so this will cause an exception
var result = controller.MakeDate(2014, 6, 31);
//Assert
Assert.AreEqual<DateTime>(expected, result);
}
在此先感谢
** **如何失败?你会得到什么错误? – SLaks
错误:方法“Makedate”没有超载需要3个参数 –
您错误地为'DateTime'构造函数设置了'MakeDate'函数。你的函数只有一个参数,它是一个'DateTime'。所以可以这样调用:'controller.MakeDate(new DateTime(2014,6,30));' 如果你想传递一个'string',把'dr'类型改成'string'并且调用它这:'controller.MakeDate(“2014-06-30”);' –