java - 如果返回 null,则测试 Tennis Kata Java 失败
问题描述
我找到了 TDD 的 Tennis Kata 训练,但我对 If 语句有小问题。
public String getScore(){
if (server.getScore() >= 3 && receiver.getScore() >= 3){
if(Math.abs(receiver.getScore() - server.getScore()) >= 2){
return getLeadPlayer().getName() + " won";
} else if (Math.abs(server.getScore() - receiver.getScore()) >= 1) {
return "A" + ":" + receiver.getScoreDescription();
} else if (Math.abs(receiver.getScore() - server.getScore()) >= 1) {
return server.getScoreDescription() + ":" + "A";
} else {
return "40:40";
}
} else {
return server.getScoreDescription() + ":" + receiver.getScoreDescription();
}
第二个 else if 语句返回 null。我不知道出了什么问题。
@Test
public void receiverAdvantage() {
IntStream.rangeClosed(1, 3).forEach((Integer) -> {
server.winBall();
});
IntStream.rangeClosed(1, 4).forEach((Integer) -> {
receiver.winBall();
});
assertThat(tennisGame, hasProperty("score", is("40:A")));
}
“A”表示优势。
和测试结果:
java.lang.AssertionError:
Expected: hasProperty("score", is "40:A")
but: null
解决方案
推荐阅读
- javascript - axios 在 20 秒内给出响应,但具有相同请求负载的相同 api 在 6 秒内从邮递员给出响应
- sas - 如何使用哈希表和数组创建查找表?
- kubernetes - Horizontalpodautoscaler 最小和最大副本为 1 创建 2 个 pod
- r - 单击操作按钮时使用 renderUI 函数显示仪表板页面
- python - 如何使一列的值与数据框中的另一列相匹配
- xamarin - 空白项目跨平台抛出错误“对象引用未设置为对象的实例”
- python - Python:如何使用嵌套的 min 和 max 函数在 Python 中进行递归?
- python - 具有不同默认图像的 django ManyToMany Image 字段
- postgresql - 如何在 psql 函数中包含隔离级别
- php - PHP:为什么乘以“1E3”返回double而不是int?