SQUASH TA:两个数据集中的行可能无法正确匹配

问题描述 投票:0回答:1

到目前为止我做的是:

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:预期= '空' |实际= '空'}

谢谢你的任何建议..

dataset automated-tests dbunit
1个回答
1
投票

您是否在预期数据集中使用了“null”的ReplacementDataSet [0]?如果不是,则将其视为字符串。字符串“null”不等于实际数据集中的null。

[0] http://dbunit.sourceforge.net/components.html#replacementdataset

© www.soinside.com 2019 - 2024. All rights reserved.