如何在没有关联数据库 table 的 rails 模块上为 ruby 编写测试用例?
How to write test cases for ruby on rails module without an associated database table?
我有以下模块
Organization::EmployeeApis
我在这个模块中有 get_employee 方法。
def get_employee(parameters)
request = {
employee_data: {
name: {
legal_name: {
name_details: {
first_name: parameters["first_name"],
middle_name: parameters["middle_name"],
surname: parameters["surname"]
}
}
},
contact_data: {
email: parameters["email"]
}
}
}
employee = Employee.new(:get_employee, :get_employee_request, parameters["organization_id"])
employee.get_response(employee)
end
我需要为没有关联数据库的上述模块编写测试用例table?
您可以创建一个新的 class,包含您的模块并对其进行测试:
let(:dummy) do
Class.new do
include TheModule
end
end
subject { dummy.new.get_employee(parameters) }
context "..." do
let(:parameters) { ... }
it "..." do
expect(subject).to eq(...)
end
end
这并不意味着任何地方都应该有数据库 table,只是在 Employee 是一个由数据库 table 支持的模型的情况下,您将需要它。对于模块你不需要一个,它只取决于它的作用。
我有以下模块
Organization::EmployeeApis
我在这个模块中有 get_employee 方法。
def get_employee(parameters)
request = {
employee_data: {
name: {
legal_name: {
name_details: {
first_name: parameters["first_name"],
middle_name: parameters["middle_name"],
surname: parameters["surname"]
}
}
},
contact_data: {
email: parameters["email"]
}
}
}
employee = Employee.new(:get_employee, :get_employee_request, parameters["organization_id"])
employee.get_response(employee)
end
我需要为没有关联数据库的上述模块编写测试用例table?
您可以创建一个新的 class,包含您的模块并对其进行测试:
let(:dummy) do
Class.new do
include TheModule
end
end
subject { dummy.new.get_employee(parameters) }
context "..." do
let(:parameters) { ... }
it "..." do
expect(subject).to eq(...)
end
end
这并不意味着任何地方都应该有数据库 table,只是在 Employee 是一个由数据库 table 支持的模型的情况下,您将需要它。对于模块你不需要一个,它只取决于它的作用。