gpt4 book ai didi

java - 使用 Java 测试平面文件内容和格式

转载 作者:行者123 更新时间:2023-12-01 11:28:02 27 4
gpt4 key购买 nike

我必须将平面文件发送到外部系统。示例文件内容如下:

START 20150602
HEADER 100.00USD
PRODUCT TEST1 50.00USD
PRODUCT TEST2 50.00USD
FOOTER 002

此文件应遵循以下准则:

First line - starts with START, then space, then today's date in YYYYMMDD
Header line - starts with HEADER, then space, then total amount of first, second, third etc products with 2 decimal points, then currency
First product - starts with PRODUCT, then space, then product name left aligned with total 25 characters, then amount with 2 decimal points, then currency
More products similar to first product, the number of products is dynamic
Footer - starts with FOOTER, then space, then total number of products with 3 digits

此格式已由外部系统供应商在 Excel 中给出。

在这种情况下,你们中有人能提出更好的测试策略吗?有没有工具可以测试文件内容和格式?

最佳答案

在这种情况下,我更喜欢从基于基本 Java 功能的简单方法开始探索我的选择。这里,每一行都可以用正则表达式来描述:

START (\d{8})
HEADER (\d+\.\d{2})(\w{3})
PRODUCT (.{25}) (\d+\.\d{2})(\w{3})
FOOTER (\d{3})

如果您不需要提取和检查值,则可能不需要括号。 OTOH,添加一个字符串列表,为这些字段提供名称,以便可以将它们输入到 map 中。

您可以为每行添加最小和最大重复计数,这将允许您编写一些简单的逻辑来迭代文件的各行。

这些可能是工厂方法调用,其中上述所有内容都是为几行定义的:

LineDef.create( "HEADER (\\d+\\.\\d{2})(\\w{3})", 1, 1,
"totalAmount", "totalCurrency" );
LineDef.create( "PRODUCT (.{25}) (\\d+\\.\\d{2})(\\w{3})", 1, 999,
"name", "amount", "currency" );

关于java - 使用 Java 测试平面文件内容和格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30647612/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com