Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rspec测试一种搜索方法_Ruby On Rails_Ruby_Rspec - Fatal编程技术网

Ruby on rails Rspec测试一种搜索方法

Ruby on rails Rspec测试一种搜索方法,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,TDD非常新,我正在尝试用Rspec测试一种搜索方法,但我一直在尝试 expected: "Test project" got: #<ActiveRecord::Relation []> project.rb 项目规格rb 您可能需要通过测试项目进行搜索,并期望项目,但反之亦然。但更好的是,通过类似testproject的方式进行搜索,例如roject: require 'rails_helper' RSpec.describe Project, type

TDD非常新,我正在尝试用Rspec测试一种搜索方法,但我一直在尝试

expected: "Test project"
            got: #<ActiveRecord::Relation []>
project.rb 项目规格rb
您可能需要通过
测试项目
进行搜索,并期望
项目
,但反之亦然。但更好的是,通过类似
testproject
的方式进行搜索,例如
roject

require 'rails_helper'

RSpec.describe Project, type: :model do
  it "finds a searched project by name" do
    FakeStubRequests.load
    project = create(:project, name: "Test project", database_url: "https://fake-database.firebaseio.com/", secret_key: "FakeSecretKey")
    @result = Project.search(search: "roject")
    expect(@result).to eq([project])
  end
end

您正在尝试将
@result
(一个ActiveRecord::Relation对象)与字符串
“测试项目”
进行比较。您需要调用
@result.first.name
并将其与字符串进行比较,或者手动查找项目记录并将其与
@result.first
项目进行比较。search
返回一个
ActiveRecord::Relation
,而不是
项目
实例,谢谢,我想知道为什么它会返回ActiveRecord,同时也感谢您在搜索名称的一部分以实际测试其全部功能方面的输入!
def self.search(params = {})
  return find_name(params[:search]) if params[:search].present?

  all
end

scope :find_name, ->(search) { where("name ILIKE :search", search: "%#{search}%") }
require 'rails_helper'
RSpec.describe Project, type: :model do
it "finds a searched project by name" do
    FakeStubRequests.load
    project = create(:project, name: "Test project", database_url: "https://fake-database.firebaseio.com/", secret_key: "FakeSecretKey")
    @result = Project.search(search: project)
    expect(@result).to eq("Test project")
  end
end
require 'rails_helper'

RSpec.describe Project, type: :model do
  it "finds a searched project by name" do
    FakeStubRequests.load
    project = create(:project, name: "Test project", database_url: "https://fake-database.firebaseio.com/", secret_key: "FakeSecretKey")
    @result = Project.search(search: "roject")
    expect(@result).to eq([project])
  end
end