Я беру класс методологий QA, и мы используем инструменты тестирования в Visual Studio. У меня есть контрольные примеры, которые учитель хочет, чтобы мы реализовали:
str c Result
________________________
null 'a' Exception
" " 'a' -1
"a" 'b' -1
"a" 'a' 0
"a..." 'b' -1
"a..." 'a' 0
"ba.." 'b' 0
"a..b" 'b' 999,999,999
Это делается в C #, который я также беру в этом квартале (не знал, что это будет часть класса QA, или я бы ждал четверть). У меня есть методы испытаний, написанные для 1-7 , У меня один на 8, но это не совсем верно. Советы по этому поводу были бы полезны.
Вот мой код:
using System;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTesting
{
[TestClass]
public class Helper
{
//Part 2 of Assignment
public static int IndexOf(string s, char c)
{
while ()
{
return ...;
}
return -1;
}
//Test cases - part 3 of assignment
//s = null, c = 'a', expected output = Exception
[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void TestMethod1()
{
Helper.IndexOf(null, 'a');
}
//s = " ", c = 'a', expected outout = -1
[TestMethod]
public void TestMethod2()
{
Assert.AreEqual(-1, Helper.IndexOf("", 'a'));
}
//s = "a", c = 'b', expected outout = -1
[TestMethod]
public void TestMethod3()
{
Assert.AreEqual(-1, Helper.IndexOf("a", 'b'));
}
//s = "a", c = 'a', expected outout = 0
[TestMethod]
public void TestMethod4()
{
Assert.AreEqual(0, Helper.IndexOf("a", 'a'));
}
//s = "aaaaaa", c = 'b', expected outout = -1
[TestMethod]
public void TestMethod5()
{
Assert.AreEqual(-1, Helper.IndexOf("aaaaaa", 'b'));
}
//s = "aaaaaa", c = '', expected outout = 0
[TestMethod]
public void TestMethod6()
{
Assert.AreEqual(0, Helper.IndexOf("aaaaaa", 'a'));
}
//s = "baaaaa", c = 'b', expected outout = 0
[TestMethod]
public void TestMethod7()
{
Assert.AreEqual(0, Helper.IndexOf("baaaaa", 'b'));
}
////s = "a...b", c = 'b', expected outout = 999999999
//[TestMethod]
//public void TestMethod8()
//{
// string str = "aa";
// for (int i = 1; i <= 999999990; i++)
// {
// str.Insert(i, "a");
// }
// str.Insert(999999991, "b");
// Assert.AreEqual(999999991, Helper.IndexOf(str, 'b'));
//}
}
}
Метод тестирования 8 закомментирован, потому что он вызывает исключение вне диапазона.
Я пробовал несколько вещей с помощью функции. В классе учитель особо упомянул цикл «время». В инструкциях также требуется указатель возврата -1 для результатов, в которых символ не найден.
Я не могу понять, как написать цикл while. Я пытался использовать .Contains, цикл не закончился правильно. У меня ощущение, что это действительно просто, но это просто вне моей досягаемости. У меня есть возврат в цикле while, потому что мне кажется, что для результатов, где найден символ, нужно что-то отличное от -1,
Я прошу прощения, если это так просто, как я боюсь, но я действительно мог бы использовать помощь людей, более опытных в C #. Я ходил в репетиторскую лабораторию в школе, но она не открыта по выходным, и на следующей неделе у меня очень плохой график работы.
Заранее спасибо.