将VS2013解决方案升级到VS2015后,几个单元测试失败。他们传递VS2013。这是由于微软推出的一些新流程吗?我还没有看到任何符合此效果的内容。我粘贴了以下代码。
public void GetIntegerFromCodeTableColumnNotFoundTest()
{
DataSet mockedDS = new DataSet();
DataTable mockedDT = new DataTable("TestTable");
mockedDT.Columns.Add("FieldName");
mockedDT.Columns.Add("Length");
mockedDS.Tables.Add(mockedDT);
DataRow mockedDR = mockedDT.NewRow();
mockedDR["FieldName"] = "FirstName";
mockedDR["Length"] = "11";
mockedDT.Rows.Add(mockedDR);
TableManager mgr = new TestTableManager();
IDataCache mockDataCache = MockRepository.GenerateMock<IDataCache>();
DataCache.Instance = mockDataCache;
mockDataCache.Expect(a => a.GetCache("Testkey")).Return(mockedDS);
try
{
float retVal = (float)mgr.GetIntegerValueFromCodeTable("TestTable", "Junk", "FirstName", "Length", true);
}
catch (Exception ex)
{
Assert.AreEqual(ex.Message, "Cannot find column [Junk].");
}
}
返回的异常消息与测试消息匹配,但返回的错误是:测试方法GetIntegerFromCodeTableColumnNotFoundTest没有抛出预期的异常System.Data.EvaluateException。
我已经看过这个post,但无论他们如何运行,无论是在调试中,还是在当时,或者所有人,我都会失败。