MSTest Assert.AreEqual因字符串数组而失败

时间:2016-05-29 17:16:51

标签: c# unit-testing mstest

我正在进行一些单元测试并且不确定为什么这个特定的测试失败了。

测试是断言自定义视图引擎在视图的正确位置查找。

在我的自定义视图引擎中是:

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 ...)

我不确定为什么,因为我调试测试时一切都很好。

1 个答案:

答案 0 :(得分:4)

您需要使用CollectionAssert代替:

CollectionAssert.AreEqual(expected, engine.AreaMasterLocationFormats);

请参阅MSDN