On Mon, 19 Nov 2007, Derek Gaston wrote:
> So I was thinking of making up some unit tests for my ExodusII
> reader/writer... but I've run into a bit of a decision. Should we
> just store a mesh/solution in the unit testing directory (maybe in a
> ./data directory??) to read in and check to make sure everything is
> ok? Doing so isn't really a "unit test" as it tests just a bit too
> much. Ideally, we would make mock objects for everything that the
> mesh reader needs data from... and only send it that data... without
> reading anything off disk. But of course, that comes with a pretty
> hefty overhead of making all of those mock objects and getting them to
> work just like a mesh would from disk.
>
> So what do you guys think? Is it worthwhile to read a mesh from disk
> and check some things to see if it did it correctly? Or should we go
> whole hog with some mock objects???
What sorts of mock objects are you thinking of? I'm not sure how
you'll test just the reader code without a whole mock MeshBase
subclass, and after all that work it still seems like you'd have a
test that wouldn't catch some of the most likely flaws - the
interactions between the reader code and the real MeshBase
implementations. None of the read() changes I had to make to get
ParallelMesh working, for example, were really "bugs" in the I/O
classes exactly, they were just assumptions about element/node id
settings which SerialMesh always satisfied but which had to be
specifically requested of ParallelMesh.
On the other hand, testing multiple major classes like that together
is more of a module test than a unit test, isn't it? I'm really
mostly worried about how much work you'd have to do to create a new
MeshBase implementation that's good enough to pass off as the real
thing even for this one limited purpose. Maybe you could start with a
copy of SerialMesh and then pare away (or replace with {error();} all
the methods/data that the I/O code shouldn't need to use?
---
Roy
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel