• rspec的should方法


    rspec的should方法 - qingling2020 - qingling2020的博客
     
     
          第一行result应该等于5;
     
     
          第二行result应该包含5;
     
     
          第三行result应该响应hello;
     
     
          第四行lambda匿名函数应该抛出错误信息“Nothing find!”;
     
     
          第五行result应该匹配正则表达式;
     
     
          第六行期望代码块能把bug状态从“open”改为“fixed”;
     
     
          第七行result应该为空;
     
     
          Should() 方法表示肯定,还有should_not()方法表示否定,该方法的工作机制是先执行should或者should_not后边的代码,返回一个 match对象,进而把此match对象作为参数传给should()或者should_not()方法,和拥有对象句柄的本地match对象作对比校 验,若匹配不成功,返回相应信息
     
    测试controller
     
    classHomeController<ApplicationController  def login
        @person=Person.where(name: params[:person][:name])if@person.blank?
          redirect_to root_path          
        else
          redirect_to people_path
        end  endend
     
    describe HomeControllerdo
      render_views
      it "Logs in Person with non-blank name"do
        person =Factory(:Person, name:"non-blank name")
        get :login
        response.should redirect_to(people_path)end
      it "does not log in Person with blank name"do
        person =Factory(:Person, name:"")# blank name
        get :login
        response.should redirect_to(root_path)endend
     

    处理文字编码与相应的引用

     
    describe "admin/roles/index"do
    before(:each) do
    @ability = Object.new
     @ability.extend(CanCan::Ability)
     controller.stub(:current_ability) { @ability }
      view.stub(:current_ability) { @ability }
    assign(:roles, Role.paginate(:page => params[:page],:per_page => 10).order("updated_at DESC"))
    end
     
    it "has a create link for that role inside admin" do @ability.can :create, Role render if Role.count > 0 rendered.should have_selector("div") do |new_a| new_a.should have_selector "a", :href => new_admin_role_path, :content => "添加" end end end
     
    it "has a destroy link for that role inside admin" do
      @ability.can :destroy, Role
      render
      if Role.count > 0
        rendered.should have_selector("tr td") do |destroy_a|
          destroy_a.should have_selector "a",
          :href => admin_role_path(Role.first),
          :"data-method" => "delete",
          :"data-confirm" => "删除之后,该角色下的用户将无该角色下的权限。确定删除吗?",
          :rel => "nofollow",
          :content => "删除"
        end
      end
    end
     
    it "has a update link for that role inside admin" do @ability.can :update, Role render if Role.count > 0 rendered.should have_selector("tr td") do |update_a| update_a.should have_selector "a", :href => "/admin/roles/"+Role.first.id+"/edit", :content => "修改" end end end
     
    it "renders a list of admin/roles" do role = Role.first @ability.can :destroy, Role @ability.can :update, Role render # Run the generator again with the --webrat flag if you want to use webrat matchers allow_message_expectations_on_nil assigns[:roles].stub!(:total_pages).and_return(1) assert_select "tr>td", :text => role.name.to_s, :count => 1 assert_select "tr td", :text => role.description.to_s, :count => 1 mycount = Role.count assert_select "a", :html => "修改",:count => mycount < 10?mycount:10 assert_select "a", :html => "删除", :count => mycount < 10?mycount:10 end end
  • 相关阅读:
    python程序设计练习题:电子银行购物商城
    python -m参数
    Python 中的 if __name__ == 'main' 的作用和原理
    Modbus协议
    Python configparser模块
    Python logging 模块:日志处理
    python hashlib模块
    Python time模块:Python 日期和时间
    mac 使用系统的自带的quickTime录屏
    Linphone android3.2.4 采用率设置(模拟电话大网信道)
  • 原文地址:https://www.cnblogs.com/qinyan20/p/3643234.html
Copyright © 2020-2023  润新知