#asp.net
#asp.net
Вопрос:
Привет, у меня есть простой метод, где он принимает строку в качестве параметра (domainname //firstname.lastname) и извлекает (domainname //) и возвращает строку просто как firstname.lastname.
Мне нужно выполнить модульное тестирование для следующего случая.
- проверьте наличие одной косой черты (доменное имя / firstname.lastname)
- Проверьте наличие пустой строки
- Проверьте, нет ли нулевого значения
- Проверьте, содержит ли строка // или нет
Я написал следующее, но для меня это не имеет никакого смысла, потому что это совершенно неверно.
#region Checking for null value
[TestMethod]
public void CheckForNullValueTest()
{
string expected = "";
string source = @"domainname//hari.gillala";
string actual = Function.RemoveSlash(source);
assert.Equal(expected, actual);
}
#endregion
#region Checking for empty
[TestMethod]
public void CheckForEmptyValueTest()
{
string expected = string.empty;
string source = @"domainname//hari.gillala";
string actual = Function.RemoveSlash(source);
assert.Equal(expected, actual);
}
#endregion
#region Checking for singleslash
[TestMethod]
public void CheckForEmptyValueTest()
{
string expected = @"domainname/hari.gillala";
string source = "domainname//hari.gillala";
string actual = Function.RemoveSlash(source);
assert.Equal(expected, actual);
}
#endregion
#region Checking for Doubleslash
[TestMethod]
public void CheckForEmptyValueTest()
{
string expected = @"domainname//hari.gillala";
string source = "domainname//hari.gillala";
string actual = Function.RemoveSlash(source);
assert.Equal(expected, actual);
}
#endregion
Я знаю, что я совершенно неправ, но некоторые могут помочь мне понять, как писать, в чем ошибки. спасибо за терпение
Большое спасибо, Хари
Комментарии:
1. Какова ваша функция. Как выглядит функция RemoveSlash (исходный код)?
2. он принимает domainname\hari.gillalla и выдает hari.gillala
3. Но что он вернет, если это null / string. Пусто?
Ответ №1:
Вашим источником должно быть значение, для которого вы выполняете тест:
Например. Проверка на наличие двойной косой черты, ваша исходная строка должна содержать // .
Вот пример теста (NUnit).
[Test]
public void CheckForDoubleSlashValueTest()
{
string expected = "hari.gillala";
string source = @"domainname//hari.gillala";
string result = MyClass.GetString(source);
Assert.AreEqual(expected, result);
}
[Test]
public void CheckForSingleSlashValueTest()
{
string expected = "hari.gillala";
string source = @"domainname/hari.gillala";
string result = MyClass.GetString(source);
Assert.AreEqual(expected, result);
}
[Test]
public void CheckForEmptyValueTest()
{
string expected = String.Empty;
string source = String.Empty;
string result = MyClass.GetString(source);
Assert.AreEqual(expected, result);
}
[Test]
public void CheckForNullValueTest()
{
string expected = String.Empty;
string source = null;
string result = MyClass.GetString(source);
Assert.AreEqual(expected, result);
}
Класс, который использует тест:
public static class MyClass
{
//Returns empty string if source you pass is null or String.Empty
public static string GetString(string s)
{
string name = String.Empty;
if(!String.IsNullOrEmpty(s)){
string[] names = s.Split('/');
name = names[names.Length - 1];
}
return name;
}
}