У меня уже есть тестовая настройка для этой функции, но я хотел бы знать, является ли это лучшим способом для этого. У меня есть такой метод:
public static string RunTableInfoCommand(IMapinfoWrapper wrapper,
TableInfoEnum infoToReturn)
{
//pass the int value of infoToReturn to underlying COM object eg wrapper.
}
TableInfoEnum выглядит следующим образом (сокращенная версия):
public enum TableInfoEnum
{
TAB_INFO_NAME = 1,
TAB_INFO_NUM = 2,
TAB_INFO_TYPE = 3,
TAB_INFO_NCOLS = 4,
TAB_INFO_MAPPABLE = 5,
TAB_INFO_READONLY = 6,
TAB_INFO_TEMP = 7
}
Когда я передаю enum в COM-объект, он возвращает разные строковые результаты в зависимости от значения enum.
например,
TAB_INFO_NAME = "Water_Mains"
TAB_INFO_NUM = "1"
COM-объект всегда будет возвращать строку, просто отличающиеся значениями на основе значения enum.
Как мне проверить, что моя RunTableInfoCommand работает нормально, пока у меня есть такой тест:
public void RunTableInfoCommandPassingTableNumberShouldReturnExpectedName()
{
string ExpectedCommand = "TableInfo(1,{0})".FormatWith((int)TableInfoEnum.TAB_INFO_NAME);
mockmapinfo.Expect(m => m.Evaluate(ExpectedCommand))
.Returns("Water_Mains");
string name = Table.RunTableInfoCommand(mockmapinfo.Object,
1,
TableInfoEnum.TAB_INFO_NAME);
Assert.AreEqual("Water_Mains", name);
}
Это работает, но я просто чувствую, что что-то упустил, как вы тестируете для всех различных типов перечислений.