Это может быть возможным решением:
public static string GetValue(string myString,int position)
{
return myString.Split(',')[position - 1];
}
static void Main(string[] args)
{
string myItem = "22";
Console.WriteLine(GetValue("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27", 22));
Console.ReadLine();
}
Добавьте частное средство доступа для класса к Вашему тестовому проекту. Используйте средство доступа для установки частных собственностей класса некоторым известным способом вместо того, чтобы использовать методы классов, чтобы сделать так.
Также необходимо использовать SetUp
и TearDown
методы на Вашем тестовом классе для выполнения любых инициализаций, необходимых между тестами. Я на самом деле предпочел бы воссоздавать очередь в каждом тесте вместо того, чтобы снова использовать его между тестами для сокращения связи между тестовыми сценариями.
Теоретически, Вы только хотите протестировать единственную функцию за один раз. Однако, если у Вашей очереди только есть пара методов (Enqueue
, Peek
, Dequeue
, Count
) затем Вы вполне ограничены в видах тестов, которые можно сделать при использовании одного метода только.
Лучше, чтобы Вы не сверхспроектировали проблему и просто создали несколько простых тестовых сценариев (таких как тот выше) и создали к тому же для обеспечения соответствующего покрытия различных функций.
Я чувствую, что это соответствует тестам записи, которые покрывают несколько функций, пока у Вас есть что-то под этим, также повредится, если одна из использованных функций будет повреждена. Поэтому, если у Вас есть набор тестов, и Вы повреждаете Ваш Enqueue
, очевидно, все Ваши тесты (или большинство из них перестанет работать), но Вы будете знать Enqueue
повредился из-за Ваших самых простых тестов. Отношениями теста к его набору тестов нельзя пропустить.
Я думаю, что это в порядке, но очистите очередь в начале своего метода тестирования.