我正在进行一些单元测试并且不确定为什么这个特定的测试失败了。
测试是断言自定义视图引擎在视图的正确位置查找。
在我的自定义视图引擎中是:
AreaMasterLocationFormats = new[]
{
"~/Areas/{2}/App/{1}/Views/{0}.cshtml",
"~/Areas/{2}/App/Shared/Views/{0}.cshtml"
};
在我的测试中是这样的:
string[] expected = new[]
{
"~/Areas/{2}/App/{1}/Views/{0}.cshtml",
"~/Areas/{2}/App/Shared/Views/{0}.cshtml"
};
CustomRazorViewEngine engine = new CustomRazorViewEngine();
Assert.AreEqual(expected, engine.AreaMasterLocationFormats);
测试失败并显示以下消息:
Message: Assert.AreEqual failed. Expected:<System.String[]>. Actual:<System.String[]>.
(s / o的引用格式不喜欢第二个LT ...)
我不确定为什么,因为我调试测试时一切都很好。
答案 0 :(得分:4)
您需要使用CollectionAssert
代替:
CollectionAssert.AreEqual(expected, engine.AreaMasterLocationFormats);
请参阅MSDN