29、业务规则指定与模型测试实践

业务规则指定与模型测试实践

1. 引入业务规则

在指定了消息模型的基本行为后,需要将一些业务规则引入应用程序。Jamis Buck 在其文章中建议将业务逻辑下沉到模型,让视图和控制器操作保持简洁,这样有助于遵循单一职责原则,使控制器和视图专注于应用逻辑,模型专注于业务逻辑。

当前消息应用可无限制发送消息,但客户希望用户通过订阅来限制每月可发送的消息数量。假设这些新需求已在 Cucumber 场景中明确,接下来要编写代码来满足这些需求。

原应用的 MessagesController 中的 create 方法如下:

def create
  @message = Message.new(params[:message])
  if @message.save
    flash[:notice] = "The message was saved successfully."
    redirect_to :action => "index"
  else
    render :action => "new"
  end
end

此设计中, MessagesController 负责构建并保存消息。为增加功能复杂度,可将此职责下沉到模型。修改后的 create 方法示例如下:

# For discussion purposes only
def create
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值