Модульное тестирование-метод-ASP.NET-Help?

#asp.net

#asp.net

Вопрос:

Привет, у меня есть простой метод, где он принимает строку в качестве параметра (domainname //firstname.lastname) и извлекает (domainname //) и возвращает строку просто как firstname.lastname.

Мне нужно выполнить модульное тестирование для следующего случая.

  1. проверьте наличие одной косой черты (доменное имя / firstname.lastname)
  2. Проверьте наличие пустой строки
  3. Проверьте, нет ли нулевого значения
  4. Проверьте, содержит ли строка // или нет

Я написал следующее, но для меня это не имеет никакого смысла, потому что это совершенно неверно.

 #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;
        }
    }