Hi Adam, as you pointed out we cannot easily do this change without introducing breaking changes. Besides that I'm not sure it would be sensible to compare DateTimes using a logic different from that of the default .NET implementation, it might be confusing for users. Also, it's not intuitive whether Local and Unspecified kinds should be considered equal to themselves, the only certain one would thus be Utc.
Simone On Wed, Apr 24, 2013 at 1:32 PM, Adam Brengesjö <ca.brenge...@gmail.com>wrote: > Public bug reported: > > The following test will fail, even if the two DateTime structs are not > equal. > (I know it's because the equality members of the DateTime type does the > evaluation which doesn't care of the Kind property) > > [Test] > public void Foo() > { > var localDate = new DateTime(2013, 04, 24, 13, 17, 44, 678, > DateTimeKind.Local); > var systemDate = new DateTime(2013, 04, 24, 13, 17, 44, 678, > DateTimeKind.Utc); > > Assert.AreNotEqual(localDate, systemDate); > } > > But I always extracts my assertions to a helper method which also checks > the Kind property. > > public static class AssertX > { > public static void AreEqual(DateTime expected, DateTime actual) > { > Assert.AreEqual(expected, actual); > Assert.AreEqual(expected.Kind, actual.Kind); > } > } > > I would like to have NUnit help me with this instead of always calling > my own helper class. > > However, I'm not sure how this best could be implemented in NUnit. > A simple overload of AreEqual(object, object) to AreEqual(DateTime, > DateTime) risk breaking compability with existing tests out there. > > One way would be to instead use another name, Assert.Identical or > similar. > > ** Affects: nunitv2 > Importance: Undecided > Status: New > > > ** Tags: feature > > -- > You received this bug notification because you are a member of NUnit > Developers, which is subscribed to NUnit V2. > https://bugs.launchpad.net/bugs/1172247 > > Title: > Improve DateTime equality assertions to include DateTimeKind > > Status in NUnit V2 Test Framework: > New > > Bug description: > The following test will fail, even if the two DateTime structs are not > equal. > (I know it's because the equality members of the DateTime type does the > evaluation which doesn't care of the Kind property) > > [Test] > public void Foo() > { > var localDate = new DateTime(2013, 04, 24, 13, 17, 44, 678, > DateTimeKind.Local); > var systemDate = new DateTime(2013, 04, 24, 13, 17, 44, 678, > DateTimeKind.Utc); > > Assert.AreNotEqual(localDate, systemDate); > } > > But I always extracts my assertions to a helper method which also > checks the Kind property. > > public static class AssertX > { > public static void AreEqual(DateTime expected, DateTime actual) > { > Assert.AreEqual(expected, actual); > Assert.AreEqual(expected.Kind, actual.Kind); > } > } > > I would like to have NUnit help me with this instead of always calling > my own helper class. > > However, I'm not sure how this best could be implemented in NUnit. > A simple overload of AreEqual(object, object) to AreEqual(DateTime, > DateTime) risk breaking compability with existing tests out there. > > One way would be to instead use another name, Assert.Identical or > similar. > > To manage notifications about this bug go to: > https://bugs.launchpad.net/nunitv2/+bug/1172247/+subscriptions > > _______________________________________________ > Mailing list: https://launchpad.net/~nunit-core > Post to : nunit-core@lists.launchpad.net > Unsubscribe : https://launchpad.net/~nunit-core > More help : https://help.launchpad.net/ListHelp > -- You received this bug notification because you are a member of NUnit Developers, which is subscribed to NUnit V2. https://bugs.launchpad.net/bugs/1172247 Title: Improve DateTime equality assertions to include DateTimeKind Status in NUnit V2 Test Framework: New Bug description: The following test will fail, even if the two DateTime structs are not equal. (I know it's because the equality members of the DateTime type does the evaluation which doesn't care of the Kind property) [Test] public void Foo() { var localDate = new DateTime(2013, 04, 24, 13, 17, 44, 678, DateTimeKind.Local); var systemDate = new DateTime(2013, 04, 24, 13, 17, 44, 678, DateTimeKind.Utc); Assert.AreNotEqual(localDate, systemDate); } But I always extracts my assertions to a helper method which also checks the Kind property. public static class AssertX { public static void AreEqual(DateTime expected, DateTime actual) { Assert.AreEqual(expected, actual); Assert.AreEqual(expected.Kind, actual.Kind); } } I would like to have NUnit help me with this instead of always calling my own helper class. However, I'm not sure how this best could be implemented in NUnit. A simple overload of AreEqual(object, object) to AreEqual(DateTime, DateTime) risk breaking compability with existing tests out there. One way would be to instead use another name, Assert.Identical or similar. To manage notifications about this bug go to: https://bugs.launchpad.net/nunitv2/+bug/1172247/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~nunit-core Post to : nunit-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~nunit-core More help : https://help.launchpad.net/ListHelp