Re: [siesta-dev] bug

[prev] [thread] [next] [lurker] [Date index for 2002/08/24]

From: Richard Clamp
Subject: Re: [siesta-dev] bug
Date: 17:07 on 24 Aug 2002
On Sat, Aug 24, 2002 at 11:16:29AM +0100, Greg McCarroll wrote:
> * Simon Wistow (simon@xxxxxxxxxx.xxx) wrote:
> > t/06database..............NOK 5#     Failed test (t/06database.t at line
> > 15)
> > #     The object isn't a 'Ima::DBI' it's a
> > 'Siesta::Storage::Table::Lists'
> > 
> > Had a quick look but nothing obvious sprung up. got to go to work.
> > Hopefully more hacking next week.
> > 
> 
> the tests are passing on my machine (last time i checked) and i'm
> afraid i dont have time today to look at it, however if someone does
> this hurried explanation might help
> 
> 	S::S::T::L inherits from S::S::T (it reads the config info
> 					  and sets up our usage of
> 					  C::DBI)
> 	S::S::T inherits from Class::DBI
> 	Class::DBI inherits from Ima::DBI 
> 
> i check all these levels as i use methods in each of them

I think testing that is bogus.  Should Class::DBI change its mind
about how it's internals are arranged but still provides all the
methods then we're going to fail tests needlessly by knowing about
it's previous class hierarchy.

I'd suggest rewriting the test so it resembles:

my $foo = S::S::T::L->new()l;

# that's what we've asked to be instantiated
isa_ok( $foo, "S::S::T::L" ); 

for (qw( new kill select pony )) {
    # it supports all the parts of the interface we expect it to have
    can_ok( $foo, $_ ); 
}

That way we're testing capabilities, and also get more tests.

-- 
Richard Clamp <richardc@xxxxxxxxx.xxx>

There's stuff above here

Generated at 13:56 on 01 Jul 2004 by mariachi 0.52