From d8955d76ccd4d494d5b2916b2957ffa1b6185e0e Mon Sep 17 00:00:00 2001 From: marco Date: Mon, 30 Apr 2012 14:58:39 +0000 Subject: * additions by Reinier, mantis #21895 git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@21148 3ad0048d-3df7-0310-abae-a5850022a9f2 --- packages/fcl-db/tests/README.txt | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/packages/fcl-db/tests/README.txt b/packages/fcl-db/tests/README.txt index e5aa23f781..e845d346ea 100644 --- a/packages/fcl-db/tests/README.txt +++ b/packages/fcl-db/tests/README.txt @@ -1,12 +1,13 @@ This directory contains a framework to test several TDataset descendents. +A lot of these tests are only applicable for SQL databases, but there are several tests that also apply to other objects, such as TBufDataset. -The framework is based on the fpcunit unit-test system. The tests can be +The framework is based on the fpcunit unit test system. The tests can be executed using any fpcunit-testrunner. For example the console and graphical -fpcunit-test runners from Lazarus. +fpcunit test runners from Lazarus. Simply add the test* units in this directory to the uses statement of the -test-runner and all tests will get registered and executed. +test runner and all tests will get registered and executed. -An simple test-runner (dbtestframework.pas) which generates XML-output is +A simple test runner (dbtestframework.pas) which generates XML output is included in this directory. To test a TDataset descendent, a 'connector' is needed to test the database. @@ -14,14 +15,25 @@ To add a new connector, create a new *toolsunit.pas file, then add it to the uses section in 'dbtestframework.pas'. Several connectors are available in the '*toolsunit.pas' files. -Which connector is currently used is dependent on the 'database.ini' -configuration file. Also some settings which are connector-dependent can be set -in that file. See 'database.ini.txt' for an example. +The connector must inherit from TDBConnector in toolsunit.pas. +The connector implements two different kinds of datasets: +- a dataset with as many different kinds of fields as possible (see the *FieldDataSets subroutines). +- a dataset with only a few fields (ID and NAME), but a lot (well, MaxDataset) of different records (see the *NDataSets subroutines) -I hope this is enough information to get you started, +CreateNDatasets and CreateFieldDataset should be implemented to set up data stores (e.g. database tables) and fill these stores with test data for the respective datasets. +The corresponding Drop*Dataset procedures must drop the tables/delete the data. -Joost van der Sluis (30-12-2006) +GetNDataset and GetFieldsDataset should return the relevant dataset in closed state so the tests can open them and work with them. +They call InternalGetNDataset and InternalGetFieldDataset which should be implemented in all descendents and returns the relevant dataset, closed, with all data. +Toolsunit.pas defines some variables for use, e.g. testValuesCount is the number of records/test values in the FieldDataset dataset; MaxDataset is the same for NDataset. +See e.g. the SQLDBToolsUnit for the implementation for SQL Databases. +Which connector is currently used is dependent on the 'database.ini' +configuration file. Also some settings which are connector-dependent can be set +in that file. See 'database.ini.txt' for an example. +I hope this is enough information to get you started, +Joost van der Sluis (30-12-2006), +amended by Reinier Olislagers (April 2012) -- cgit v1.2.1