在我的申請中,我有兩個等效的enum
s。一個住在DAL中,另一個住在服務合同層。它們具有相同的名稱(但位於不同的名稱空間中),並且應具有相同的成員和值。比較兩個枚舉類型*的等價性?
我想編寫一個強制執行此操作的單元測試。到目前爲止,我得到以下幾點:
public static class EnumAssert
{
public static void AreEquivalent(Type x, Type y)
{
// Enum.GetNames and Enum.GetValues return arrays sorted by value.
string[] xNames = Enum.GetNames(x);
string[] yNames = Enum.GetNames(y);
Assert.AreEqual(xNames.Length, yNames.Length);
for (int i = 0; i < xNames.Length; i++)
{
Assert.AreEqual(xNames[i], yNames[i]);
}
// TODO: How to validate that the values match?
}
}
這對比較名稱很合適,但是如何檢查值是否匹配?
(我使用NUnit 2.4.6,但我想這也適用於任何單元測試框架)
啊,我試過Assert.AreEqual((int)xValues [i],(int)yValues [i]),它沒有它。 – 2009-09-11 10:40:19