35、单元测试的最佳实践

单元测试的最佳实践

在软件开发过程中,单元测试是确保代码质量和稳定性的重要手段。然而,在编写单元测试时,我们常常会遇到一些挑战和误区。本文将探讨两个关键的单元测试实践:避免为了测试而暴露私有函数,以及一次只测试一个行为。

避免为了测试而暴露私有函数

私有函数是类的实现细节,外部代码不应直接访问或使用它们。但有时,为了方便测试,我们可能会想将这些私有函数暴露给测试代码。然而,这样做往往不是一个好主意,因为它可能导致测试与实现细节紧密耦合,无法真正测试到我们关心的行为。

测试私有函数往往是个坏主意

MortgageAssessor 类为例,该类的公共API是 assess() 函数,此外还有两个私有辅助函数: isEligibleForMortgage() getMaxLoanAmount() 。这些私有函数是实现细节,外部代码无法访问。

class MortgageAssessor {
  private const Double MORTGAGE_MULTIPLIER = 10.0;

  MortgageDecision assess(Customer customer) {    
    if (!isEligibleForMortgage(customer)) {    
      return MortgageDecision.rejected();  
    }
    return MortgageDecision.approve(ge
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值