java 8 lamdba调试工具_Java8-21-lambda 测试调试

测试和调试

现在你的代码中已经充溢着Lambda表达式,看起来不错,也很简洁。

但是,大多数时候,我们受雇进行的程序开发工作的要求并不是编写优美的代码,而是编写正确的代码。

通常而言,好的软件工程实践一定少不了单元测试,借此保证程序的行为与预期一致。

测试用例

你编写测试用例,通过这些测试用例确保你代码中的每个组成部分都实现预期的结果。

比如,图形应用的一个简单的 Point 类,可以定义如下:

public class Point {

private final int x;

private final int y;

public Point(int x, int y) {

this.x = x;

this.y = y;

}

public int getX() {

return x;

}

public int getY() {

return y;

}

public Point moveRightBy(int x) {

return new Point(this.x + x, this.y);

}

}

下面的单元测试会检查 moveRightBy 方法的行为是否与预期一致:

public class PointTest {

@Test

public void testMoveRightBy() {

Point p1 = new Point(5, 5);

Point p2 = p1.moveRightBy(10);

Assert.assertEquals(15, p2.getX());

Assert.assertEquals(5, p2.getY());

}

}

测试可见 Lambda 函数的行为

由于 moveRightBy 方法声明为public,测试工作变得相对容易。你可以在用例内部完成测试。

但是Lambda并无函数名(毕竟它们都是匿名函数),因此要对你代码中的Lambda函数进行测试实际上比较困难,因为你无法通过函数名的方式调用它们。

有些时候,你可以借助某个字段访问Lambda函数,这种情况,你可以利用这些字段,通过它们对封装在Lambda函数内的逻辑进行测试。

比如,我们假设你在 Point 类中添加了静态字段compareByXAndThenY(),通过该字段,使用方法引用你可以访问 Comparator 对象:

public class Point {

public final static Compara

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值