You need to sign in to do that
Don't have an account?
Abhijeet Purohit01
Problem in testclass
I have written a trigger to update a date/time field called Last_Stage_Change__c by system.now().
In the test class I used:
system.assertEquals(system.now(), obj.Last_Stage_Change__c);
Am getting an error msg saying
Expected: 10/4/2012 12:28:36pm, Actual: 10/4/2012 12:28:37pm.
That is the difference between Expected and Actual is one second.
What to do?
Time passes between the time the field is set and the time of the test.
A safe approach would be to store the datetime at the start of the test in a variable. For example
DateTime initialtime = DateTime.Now();
Then, during the assert, make sure that the field is set to a DateTime larger than the stored date. That will validate that the field was set correctly.
system.assert(obj.Last_Stage_Change__c > initialtime);
Dan
Am getting an error message: Assert Failed.
Dude,
Consideration in your scenarion.
Suppose you have assigned the [obj.Last_Stage_Change__c = Datetime.Now() ](At around 3:33)
and then you are assigned the [DateTime initialtime = DateTime.Now(); ](At around 3:33 + x_milli_seconds)
and finally you are trying to assert.
system.assert(obj.Last_Stage_Change__c > initialtime);
which will obviousally fail.
because Datetime only supports till seconds not bellow this.
try running
system.assert(obj.Last_Stage_Change__c == initialtime);
May be you can assert based on date.
Then Using hour and min you can assert. ignore the sec part
Sorry - it was late
Should have been system.assert(obj.Last_Stage_Change__c >= initialtime);
Dan