我尝试使用 DBUnit 来测试我的存储库服务。 我有这个显示预期结果的xml:
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<product id="1" description="Printer" price="75.0" />
</dataset>
id= String , description = String , price = double.
问题是我已经习惯json,而不是xml,因此我不知道如何将属性格式化为double类型。
我试过了:price="75.0" , price=75.0 , price=75
之后我无法将其强制转换为因为我让DBUnit进行解析:
IDataSet expectedDataset = new FlatXmlDataSetBuilder().build(expectedDataSetFile);
目前,我的断言因为这个问题而失败,使用调试器我看到数据被正确放入。
答案 0 :(得分:1)
默认情况下,XML都是一个字符串。您可以使用XML Schema Definition对您的数据及其结构实施规则,这样就可以说明价格是双倍的。
但是,我不了解DBUnit,但我希望它能提供另一种更简单的方式来陈述您的数据格式。
答案 1 :(得分:0)
在XML中,一切都是字符串。您可以在模式中将属性定义为float,但这不会使解析器将其作为浮点值传递给应用程序。它仍然会以字符串形式提供。
在XML中将属性值定义为类型时,实际上是在定义必须遵守的字符串模式。换句话说,您要说字符串必须包含一个遵循浮点值的字符串表示模式的值。验证器会将其标记为错误,因为字符串与此模式不匹配,但解析器仍会将其作为字符串传递。
下游应用程序(例如XSLT脚本)可能会查看架构并使用它包含的信息将值解释为float,但解析器不会。换句话说,你需要自己施展。