Hi Adam , this is exactly what I mentioned before. This is called a constraint modifier in NUnit. The drawback with this approach is it applies to every type, because we don't have generics. On Apr 25, 2013 8:21 AM, "Adam Brengesjö" <ca.brenge...@gmail.com> wrote:
> What if adding a built-in constraint option similar to the following > usecase > > public class F > { > [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.That(localDate, Is.EqualTo(systemDate).StrictDateTimeKind); > } > } > > Of course, as a developer I have to know of this feature to detect > problems like the ones in my case in earlier posts. > But as a NUnit user I do not have to extend the framework in all projects. > > -- > 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 >
_______________________________________________ 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