I write a functional test,here is the code:
require File.dirname(FILE) + ‘/…/test_helper’
require ‘welcome_controller’
Re-raise errors caught by the controller.
class WelcomeController; def rescue_action(e) raise e end; end
class WelcomeControllerTest < Test::Unit::TestCase
fixtures :coursetemplates
fixtures :coursecatalogs
fixtures :currencies
fixtures :states
fixtures :butypes
fixtures :pageformats
def setup
@controller = WelcomeController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
end
def test_register
# if register,the controller must create a default bu,
# a default user belong to the bu,ten materialuserdefines,ten
batchmaterialuserdefines,
# a coursecodeexample,a vouchertype and courses accroding to the
coursetemples
post :create, :account => { :name_native => “test account”,
:name_eng => “test account”,
:email => “[email protected]”,
:phone => “testphone”,
:currency_id => 1}
#p @response
assert_response :success
end
def test_login
assert true
end
end
and the function is below:
def create
begin
@account=Account.new(params[:account])
@bu=Bu.new(:code=>"000",:name_native=>"Manager
Center",:name_eng=>“Manager Center”,:isdefault=>true,:butype_id=>“1”)
@user=User.new(:code=>“admin”,:password=>“groupart”,:isdefault=>true)
@usereditor=Usereditor.new
@usereditor.createdman=@user
@usereditor.updatedman=@user
@user.usereditor=@usereditor
@bu.users<<@user
@bu.createdman=@user
@bu.updatedman=@user
@account.bus<<@bu
@account.users<<@user
i=1
10.times {
@materialuserdefine=Materialuserdefine.new(:columnname=>"user_define"
-
i.to_s,:definename=>“user_define” + i.to_s,:datatype_id=>1)
@materialuserdefine.createdman=@user
@materialuserdefine.updatedman=@user
@batchuserdefine=Batchuserdefine.new(:columnname=>“user_define” -
i.to_s,:definename=>“user_define” + i.to_s,:datatype_id=>1)
@batchuserdefine.createdman=@user
@batchuserdefine.updatedman=@user
i=i+1
@account.materialuserdefines<<@materialuserdefine
@account.batchuserdefines<<@batchuserdefine
}@template =
Coursetemplate.find(:all,:conditions=>[“coursegrade=1”])
@account.courses << getcoursearray(@template,@user,@account)
@coursecodeformat=Coursecodeformat.new()
@coursecodeformat.createdman=@user
@coursecodeformat.updatedman=@user
@account.coursecodeformat = @coursecodeformat
@vouchertype=Vouchertype.new(:name_native => 'voucher',:isdefault
=> true )
@vouchertype.createdman=@user
@vouchertype.updatedman=@user
@account.vouchertypes << @vouchertype
@account.save!
render :json => {:success => true}.to_json,:layout=>false
rescue Exception => exc
render :json => {:success =>
false,:errors=>exc.message}.to_json,:layout=>false
end
end
when I run the test,system always told me like below:
- Errors:
test_register(WelcomeControllerTest):
NoMethodError: undefined method ‘view_paths’ for #Array:0x34568f4
I also upload the error picture
I don’t know why,who can help me.
By the way,I use the extjs, so when I submit a form,I always use the
instrustion like below:
render :json => {:success => true}.to_json,:layout=>false