В новинку для TDD в asp.NET, я на правильном пути пишу тесты?

Я читал много на TDD за прошлые несколько месяцев и решил вскочить и испытать его с легким примером, я просто не уверен, что тестирую на правильные вещи на практике. Здесь тесты для пользовательского Аннотирования данных для проверки электронных писем:

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace MembershipTest.Tests
{
    [TestClass]
    public class CustomDataAnnotationsTest
    {
        [TestMethod]
        public void CustomDataAnnotations_Email_ReturnTrueIfNull()
        {
            // Arrange
            EmailAttribute attribute = new EmailAttribute();

            // Act
            bool result = attribute.IsValid(null);

            // Assert
            Assert.AreEqual(true, result);
        }

        [TestMethod]
        public void CustomDataAnnotations_Email_ReturnFalseIfInvalid()
        {
            // Arrange
            EmailAttribute attribute = new EmailAttribute();

            // Act
            bool result = attribute.IsValid("()[]\\;:,<>@example.com");

            // Assert
            Assert.AreEqual(false, result);
        }

        [TestMethod]
        public void CustomDataAnnotations_Email_ReturnTrueIfValid()
        {
            // Arrange
            EmailAttribute attribute = new EmailAttribute();

            // Act
            bool result = attribute.IsValid("john.smith@example.com");

            // Assert
            Assert.AreEqual(true, result);
        }
    }
}

И вот последующий код, написанный для теста:

using System;
using System.ComponentModel.DataAnnotations;
using System.Net.Mail;

public class EmailAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        //Let RequiredAttribute validate whether the value is required or not.
        if (value == null)
        {
            return true;
        }

        //Check to see if System.Net.Mail can send to the address.
        try
        {
            var i = new MailAddress(value.ToString());
        }
        catch (Exception)
        {
            return false;
        }

        return true;
    }

}

Все тесты, неудавшиеся первоначально и затем следовавшие после написания кода, но тестов, соответственно записаны? Слишком много, или слишком мало? Я знаю, что это - очень простой пример, но я хочу удостовериться, что я на правильном пути прежде иду дальше к более сложным вещам.

5
задан Graham Conzett 9 August 2010 в 17:35
поделиться