2011-01-11 5 views
0

私は新しいS#arp Archアプリケーション(v1.6)を作成し、クラスのテストを作成しているので、TDDの速度を上げようとしています。残念ながら私はまだ解決していない問題に取り組んできました。S#arp ArchとTDD

私は 'User'と 'RecordRequest'クラスの両方の比較テストを作成しました。 NUnitでテストを実行すると、 'User'テストは成功しますが、 'RecordRequest'は実行されません。私は1つのテストが合格で、もう1つが合格ではない理由を理解しようとしています。エラーメッセージは、次のとおり

SharpArch.Testing.NUnit.SyntaxHelpers.ShouldEqualに(予想オブジェクト、実際のオブジェクト)Eで:\ワークスペース\のGit \ SharpArchitecture \トランク\ SRC \ SharpArch \ SharpArch.Testing.NUnit \ SyntaxHelpers。 cs:line 25 をTests.ISPS.Core.Account.RecordRequestTests.CanCompareRecordRequests()(D:¥Web¥Mvc¥Projects¥Campus Counsel¥IRS¥ISPS¥tests¥ISPS.Tests¥ISPS.Core¥Account¥RecordRequestTests)にコピーします。 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

関連する問題