Rspec,创建动作,预计已改变1,但被改为0

时间:2016-12-30 22:44:27

标签: ruby-on-rails ruby rspec

我的askings_controller.rb在下面。

    class AskingsController < ApplicationController
        before_action :authenticate_user! , only: [:new , :create , :destroy]
        def create
          @asking=Asking.create(asking_params)  do |c|
             c.user=current_user
          end
          if @asking.save
           flash[:success] = "依頼に成功しました。"
           redirect_to @asking
          else
           render 'askings/new'
          end
        end
      end

我的工厂/ askings.rb在下面。

       FactoryGirl.define do
        factory :asking do
        association :user
        sequence(:content){|i| "お願いします#{i}"}
        lang "english"
        person 'ネイティブ限定'
        sex '男性限定'
        usepoint 1
        finished false
        title "MyString"
        deadline "2017-1-12"
        deadline_time 19
       end
     end

我的askings_contoller_spec.rb在下面。

  require 'rails_helper'
  RSpec.describe AskingsController, type: :controller do
   describe 'when login user' do
    context 'Post #create' do
      before do
          @user=create(:user)
          login_user(@user)
      end
      let(:asking_params) {attributes_for(:asking)}
      it 'should make askings +1' do
          expect{post :create, asking: asking_params}.to change(Asking, :count).by(1)
      end
    end
  end

我的模特/ ask.rb在下面。

     class Asking < ActiveRecord::Base
       belongs_to :user
       validates :title , presence: true , length: {maximum: 80}
       validates :content , presence: true , length: {maximum: 800}
       validates :lang , presence: true
       validates :usepoint , presence: true
       validates :person , presence: true
       validates :sex , presence: true
       validates :deadline , presence: true
       validates :deadline_time , presence: true
     end

为什么我将'expected #count更改为1,但更改为0'的错误? 当我从ask.rb中删除'validates:deadline_time,presence:true'时,它可以工作。但我认为这没有错。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

factories/askings.rb中尝试匹配deadline_time列的格式。现在你有INT 19,也许尝试一个格式化时间的字符串(很高兴看到Asking的模式)。

快速编辑 - 我的想法是你的工厂没有提出有效的要求,因此计数没有增加。