On Mon, 5 Nov 2012, ik wrote:
On Mon, Nov 5, 2012 at 2:45 PM, Michael Van Canneyt
<mich...@freepascal.org> wrote:
On Mon, 5 Nov 2012, ik wrote:
Hello,
I wish to test if a method has raised an exception for a value
(something that should make the test pass) or not.
For example:
function TestNum(ch : Char) : Byte;
begin
if UpCase(ch) in ['A'..'F', '0'..'9'] then
...
else
raise Exception.Create('Invalid char was given.');
end;
I want to test the code with Char like 'y' for example, to make sure
that it does raises the exception.
Does AssertException is the proper method for such test ?
Yes.
So how do I do it ?
TRunMethod = procedure of object;
If I pass it a function, it don't really like it:
AssertException(ExceptionWasNotRaisd, EMsgPackWrongType, @MsgPackType.AsByte);
You must create a method in your testcase that calls the funtion,
and pass that method to AssertException.
The alternative is to do everything yourself:
Procedure TMyTestClass.MyTest;
Var
B : Byte;
begin
try
B:=MsgPackType.AsByte;
Fail(ExceptionWasNotRaisd);
except
On E : Exception do
if (E is not EMsgPackWrongType) then
Fail(ExceptionWasNotRaisd);
end;
end;
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal