写一个java unitTest 筛选传入的excel中的数据, 如果功能位置相同,当资产编号全为同一个数值时,那么只留下一条数据,当资产编号中存在不同数据,那么该功能位置下的数据全部保留
时间: 2024-03-08 17:50:56 浏览: 38
好的,我来为你写一个 Java 的 Unit Test,该 Unit Test 是用 JUnit 进行编写的,主要测试的是筛选传入的 Excel 中的数据,当资产编号相同时只留下一条数据,否则该功能位置下的数据全部保留。
```java
import org.junit.Test;
import java.io.File;
import java.util.List;
import static org.junit.Assert.*;
public class TestExcelFilter {
@Test
public void testExcelFilter() throws Exception {
String filePath = "test.xlsx";
ExcelFilter excelFilter = new ExcelFilter(new File(filePath));
// 测试当资产编号相同时只留下一条数据
List<Asset> assets1 = excelFilter.filter("0001");
assertEquals(1, assets1.size());
// 测试当资产编号不相同时全部保留
List<Asset> assets2 = excelFilter.filter("0002");
assertEquals(2, assets2.size());
}
}
```
在上面的代码中,我们同样使用了 JUnit 的 `@Test` 注解来标记我们要进行测试的方法。在 `testExcelFilter()` 方法中,我们首先创建了一个 `File` 对象来表示我们要读取的 Excel 文件,然后将该文件对象传递给 `ExcelFilter` 的构造函数来创建一个 `ExcelFilter` 对象。
接着,我们分别调用 `ExcelFilter` 对象的 `filter()` 方法来筛选资产编号为 "0001" 和 "0002" 的资产数据。由于该 Excel 文件中只包含两个资产对象,它们的资产编号分别为 "0001" 和 "0002",因此我们期望当我们传入 "0001" 时,只有一条资产数据;当我们传入 "0002" 时,有两条资产数据。所以我们分别使用了 `assertEquals()` 方法来进行断言。
最后,我们可以运行该 Unit Test 来测试我们实现的代码是否正确。需要注意的是,由于该 Unit Test 读取了一个 Excel 文件,因此我们需要确保该文件存在,并且我们需要在代码中指定正确的文件路径。
阅读全文