到目前为止我做的是:
test.tankionline.com
// -- 1 --
SETUP :
// -- 2 --
LOAD PRE/query1.sql AS query1.file
CONVERT query1.file TO query.sql AS query
// -- 3 --
# LOAD PRE/query1_expected.xml TO XML DATASET expected.dataset
// -- 4 --
TEST :
// -- 5 --
EXECUTE execute WITH query ON DB_INT3_PARC AS raw_result
// -- 6 --
CONVERT raw_result TO dataset.dbunit AS actual.dataset
// -- 7 --
ASSERT actual.dataset IS equal WITH expected.dataset
QUERY1.SQL
SELECT pid.ID ,pid.type , pid.system, P.ID_PRODUIT , p.ref_produit , p.libelle,P.TYPE as P_TYPE,r.id_ressource, p.id_party, p.statut
FROM parc_produit p, parc_ressource r, parc_produit_id pid
WHERE r.VALEUR = 8933200000000221265 and r.nom_ressource = 'ICCID' AND r.id_produit = p.id_produit
AND pid.id_produit = p.id_produit AND pid.system = '123'
query1_expected.xml
<?xml version="1.0"?>
<dataset>
<default ID="0000009794" TYPE="PFI" SYSTEM="123" ID_PRODUIT="794" REF_PRODUIT='null' LIBELLE='null' P_TYPE="17" ID_RESSOURCE="121" ID_PARTY="101" STATUT="27"/>
</dataset>
在DB中执行query1.sql时,输出为:
0000009794 PFI 123 794 (null) (null) 17 121 101 27
断言失败:
[FAIL] ASSERT actual.dataset IS等于expected.dataset org.squashtest.ta.framework.exception.BinaryAssertionFailedException:实际数据集与预期数据集不同
执行报告:
- 表“default”:警告:由于表“default”没有(伪)主键,因此两个数据集中的行可能无法正确匹配。 {libelle:预期= '空' |实际= '空'} {ref_produit:预期= '空' |实际= '空'}
谢谢你的任何建议..
您是否在预期数据集中使用了“null”的ReplacementDataSet [0]?如果不是,则将其视为字符串。字符串“null”不等于实际数据集中的null。
[0] http://dbunit.sourceforge.net/components.html#replacementdataset