如何在 dbunit 中测试非空值结果

How to test for not null value result in dbunit

要测试 null 数据集引用可以设置为

<dataset>
    <table name="order_test">
        <column>foreignId</column>
        ...
        <row>
            <null/>
        ...
       </row>
...

当结果返回随机值时,如何才能通过断言?我试过 <notnull/><value/> 但没有果汁。

如果列不为空,我最终更改了我使用的查询 例如

SELECT CASE WHEN foreignId IS NOT NULL THEN 'foreignId' ELSE foreignId END
FROM table

然后我有一个特定的值要在数据集参考中设置:

<dataset>
    <table name="order_test">
        <column>foreignId</column>
        ...
        <row>
            <value>foreignId<value/>
        ...
       </row>
...

对于这样的随机值(例如时间戳),通常会忽略预期结果集中的列。参见 DefaultColumnFilter

例如:

String[] excludeColumns = {"col1", "col2"};
ITable filteredTable = DefaultColumnFilter.excludedColumnsTable(table, excludeColumns);

您也可以尝试使用:

<dataset>
    <table name="order_test">
        <column>foreignId</column>
        ...
        <row>
             <null description="foreignId"/>
        ...
       </row>

...