Rog*_*mbe 6 c# enums unit-testing
在我的申请中,我有两个等价enum的.一个住在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?
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于比较名称,但如何检查值是否匹配?
(我正在使用NUnit 2.4.6,但我认为这适用于任何单元测试框架)
Dar*_*rov 14
var xValues = Enum.GetValues(x);
var yValues = Enum.GetValues(y);
for (int i = 0; i < xValues.Length; i++)
{
Assert.AreEqual((int)xValues.GetValue(i), (int)yValues.GetValue(i));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4657 次 |
| 最近记录: |