【发布时间】:2019-08-26 17:09:24
【问题描述】:
我有一个Car 类,其类别字段为String:
public class Car {
private String category;
public Car(String category) {
this.category = category;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
我有这个方法,它使用contains() 方法从数组中过滤出基于String 的元素,只保留跑车。我知道这是个坏主意,只是尝试编写我的第一个单元测试。你能帮我理解从哪里开始吗?一般来说,测试环路过滤逻辑的最佳实践是什么。
private List<Car> filterOutEverythingExceptSportCars(List<Car> cars) {
List<Car> filteredCarsList = new ArrayList<>();
for (int i = 0; i < cars.size(); i++) {
if (cars.get(i).getCategory().contains("sport")) {
filteredCarsList.add(cars.get(i));
}
}
return filteredCarsList;
}
【问题讨论】:
-
请注意,虽然方法标题向我建议您希望将跑车保留在列表中,但代码会过滤掉所有跑车(并保留其余的)。
-
是的,不好的命名,谢谢你提到它。
-
实际上,根据您上面的描述,在我看来名称是正确的,但代码与您想要的相反。我相信你应该摆脱 !运算符。
-
是的,编辑它以避免混淆,谢谢。
标签: java android unit-testing junit tdd