2011-01-11 2 views
0

TDD로 속도를 높이려고 노력 중이므로 새 S # arp Arch 애플리케이션 (v1.6)을 만들었고 클래스에 대한 테스트를 작성하고 있습니다. 불행히도 나는 이미 해결해야 할 문제를 이미 실행했습니다.S # arp Arch and TDD

나는 'User'와 'RecordRequest'클래스에 대한 비교 테스트를 만들었습니다. NUnit으로 테스트를 실행할 때 'User'테스트가 통과하는 반면 'RecordRequest'테스트는 통과하지 않습니다. 왜 한 시험이 통과하고 다른 시험은 통과하지 않는지 이해하려고 노력하고 있습니다. 오류 메시지는 다음과 같습니다 SharpArch.Testing.NUnit.SyntaxHelpers.ShouldEqual에서

는 (실제 개체, 개체 예상) 전자에 : \ 작업 공간 \ 힘내 \ SharpArchitecture \ 트렁크 \ SRC \ SharpArch \ SharpArch.Testing.NUnit SyntaxHelpers \. cs : line 25 D : \ Web \ Mvc \ Projects \ Campus Counsel \ IRS \ ISPS \ tests \ ISPS.Tests \ ISPS.Core \ Account \ RecordRequestTests에있는 Tests.ISPS.Core.Account.RecordRequestTests.CanCompareRecordRequests()에 있습니다. CS : 라인 23

'사용자 클래스와 테스트 :

using System; 
using System.Security.Principal; 
using NHibernate.Validator.Constraints; 
using SharpArch.Core.DomainModel; 

namespace ISPS.Core.Account 
{ 
    public class User : Entity, IPrincipal 
    { 
     public static User DefaultUser() 
     { 
      return new User 
      { 
       Role = Role.Administrator, 
       IsActive = true, 
       CreatedOn = DateTime.Now 
      }; 
     } 

     [DomainSignature] 
     [NotNullNotEmpty(Message = "Kerberos must be provided.")] 
     public virtual string Kerberos { get; set; } 

     [NotNullNotEmpty(Message = "First name must be provided.")] 
     public virtual string FirstName { get; set; } 

     [NotNullNotEmpty(Message = "Last name must be provided.")] 
     public virtual string LastName { get; set; } 

     [DomainSignature] 
     [NotNullNotEmpty(Message = "Email must be provided.")] 
     public virtual string Email { get; set; } 

     [NotNull(Message = "Role must be provided.")] 
     public virtual Role Role { get; set; } 

     public virtual bool IsActive { get; set; } 
     public virtual DateTime CreatedOn { get; set; } 
     public virtual DateTime? ModifiedOn { get; set; } 

     public virtual bool IsAdministrator { get { return Role.Id == Role.AdministratorId; } } 
     public virtual bool IsEditor { get { return Role.Id == Role.EditorId; } } 
     public virtual bool IsGuest { get { return Role.Id == Role.GuestId; } } 

     public virtual IIdentity Identity 
     { 
      get 
      { 
       var isAuthenticated = (Role.Name == Role.Administrator.Name); 
       return new Identity(isAuthenticated, Kerberos); 
      } 
     } 

     public virtual bool IsInRole(string role) 
     { 
      return Role.Name == role; 
     } 
    } 

    /// <summary> 
    /// Simple implementation of IIdentity 
    /// </summary> 
    public class Identity : IIdentity 
    { 
     public Identity(bool isAuthenticated, string name) 
     { 
      IsAuthenticated = isAuthenticated; 
      Name = name; 
     } 

     public string AuthenticationType 
     { 
      get { return "Forms"; } 
     } 

     public bool IsAuthenticated { get; private set; } 

     public string Name { get; private set; } 
    } 
} 

using System; 
using NUnit.Framework; 
using SharpArch.Testing.NUnit; 
using ISPS.Core.Account; 

namespace Tests.ISPS.Core.Account 
{ 
    [TestFixture] 
    public class UserTests 
    { 
     [Test] 
     public void CanCompareUsers() 
     { 
      var instance = new User 
           { 
            Kerberos = "nchomsky", 
            FirstName = "Noam", 
            LastName = "Chomsky", 
            Email = "[email protected]", 
            Role = Role.Administrator, 
            IsActive = true, 
            CreatedOn = DateTime.Parse("1/1/1975 10:00 AM"), 
            ModifiedOn = null 
           }; 

      var instanceToCompareTo = new User 
              { 
               Kerberos = "nchomsky", 
               FirstName = "Noam", 
               LastName = "Chomsky", 
               Email = "[email protected]", 
               Role = Role.Administrator, 
               IsActive = true, 
               CreatedOn = DateTime.Parse("1/1/1975 10:00 AM"), 
               ModifiedOn = null 
              }; 

      instance.ShouldEqual(instanceToCompareTo); 
     } 
    } 
} 

'RecordRequest '클래스와 테스트 :

using NHibernate.Validator.Constraints; 
using SharpArch.Core.DomainModel; 

namespace ISPS.Core.Requests 
{ 
    public class RecordRequest : Entity 
    { 
     public static RecordRequest DefaultRecordRequest() 
     { 
      return new RecordRequest(); 
     } 

     [NotNullNotEmpty(Message = "A description of the documents requested must be provided.")] 
     public virtual string Description { get; set; } 
    } 
} 

using ISPS.Core.Requests; 
using NUnit.Framework; 
using SharpArch.Testing.NUnit; 

namespace Tests.ISPS.Core.Requests 
{ 
    [TestFixture] 
    public class RecordRequestTests 
    { 
     [Test] 
     public void CanCompareRecordRequests() 
     { 
      var instance = new RecordRequest 
      { 
       Description = "description" 
      }; 

      var instanceToCompareTo = new RecordRequest 
      { 
       Description = "description" 
      }; 

      instance.ShouldEqual(instanceToCompareTo); 
     } 
    } 
} 

아무쪼록 감사드립니다.

답변

0

Description 속성에 [DomainSignature] 특성을 추가 해보십시오.

+0

도움을 주셔서 감사합니다! 더 자세한 설명은 The S # arp Architecture Wiki에서 The S # arp Architecture Class Libraries /DomainModel/Entity.cs에서 찾을 수 있습니다. – Tyler

관련 문제