首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

测试rails路由:找不到ActionController :: Assertions :: RoutingAssertions方法

您好!您提到的 ActionController::Assertions::RoutingAssertions 是 Rails 框架中的一个模块,用于测试路由。在 Rails 中,路由是将 URL 与控制器中的特定操作进行映射的过程。ActionController::Assertions::RoutingAssertions 模块提供了一些方法,可以帮助您在测试中验证路由的正确性。

以下是一些常用的方法:

  • assert_routing:测试 URL 是否能够正确映射到指定的控制器和操作。
  • assert_recognizes:测试指定的控制器和操作是否能够生成正确的 URL。
  • assert_generates:测试生成的 URL 是否符合预期。

例如,如果您要测试一个路由规则,将 URL /posts/1 映射到 PostsControllershow 操作,可以使用以下代码:

代码语言:ruby
复制
assert_routing({ path: "/posts/1", method: :get }, { controller: "posts", action: "show", id: "1" })

这个测试将会检查指定的路由规则是否能够正确地将 URL /posts/1 映射到 PostsControllershow 操作,并且将 id 参数设置为 1

您可以使用 ActionController::Assertions::RoutingAssertions 模块来测试您的路由配置是否正确,以确保您的应用程序能够正确地处理各种 URL。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用rails实现最简单的CRUD

和数据库的迁移文件 log:日志文件 package.json:npm包记录,使用yarn管理 public:静态文件 test:测试 使用 rails server 命令启动服务器即可在本地..." end 这里定义了路由hello/index,并且使用root方法将首页修改为了hello控制器下的index方法,也就是两路由的控制器一致。...使用以下命令生成控制器: rails generate controller Articles 配置articles的路由: resources :articles 使用 rails routes 命令查看当前的路由配置...很明显,从这里可以看到每个路由应该对应的控制器方法,这是一个典型的RESTful api的配置。...此时我们需要定义提交之后的处理路径,从上面的路由配置中我们可以知道对应于 create 方法 def create @article = Article.new(article_params)

3.1K40
  • iOS_单元测试一之UnitTests

    ) {} // 类的tearDown,在所有方法执行之后执行 // 在每个测试方法执行之前都会执行,用于对每个测试方法都需要做的初始化操作(有异常时会抛出:适用于初始化会有异常抛出的情况) override...、断言方法 1、布尔值断言 Boolean Assertions: XCTAssert:断言为 true XCTAssertTrue:断言为 true XCTAssertFalse:断言为 false...NSException Assertions: XCTFail:立即无条件生成一个失败 例如: XCTFail() 7、跳过测试 Skipping Tests: XCTSkipIf:如果条件为false...,就能看到满足期望的比例了: ---- 六、其他 1、为测试添加全局断点: 2、测试项目里的文件 Swift项目,当我们需要使用一个类时,Xcode会报找不到类型的错:Cannot find type...OC`的私有属性和方法,可以在当前测试用分类再次声明一下就可以测试了 4、添加测试Target方法方法一:在创建项目时勾选 方法二:在导航栏的测试tab添加:如图 Demo github地址 参考

    90220

    DevOps工具介绍连载(48)——静态扫描工具Brakeman

    它仅包括对少量与Rails相关的CVE的检查。使用bundler-audit或相关工具进行依赖性检查。...渲染参数 render像其他所有方法调用一样,将作为所有参数的调用编入索引并检查所有漏洞类型。...将识别出更多的情况,特别是当它是方法调用的目标时。 更多范围 无论检测到Rails的版本如何,都将处理named_scope和scope。...转换s(:lambda)到s(:call)中Sexp#block_call(#1410) 加入前检查字符串长度是否超过限制 修复片状rails4测试(Adam Kiczula) 修复Symbol#to_sRuby...片状测试固定 亚当·基茨库拉(Adam Kiczula)在Brakeman测试套件中修复了一个间歇性失败的测试,该测试长期困扰着CI构建。谢谢!

    2.2K10

    绕过GitHub的OAuth授权验证机制($25000)

    我对GitHub的主要测试方法为,下载试用版的GitHub Enterprise,然后用我写的脚本把它反混淆(deobfuscate),然后观察GitHub的 Rails 代码查看是否有一些奇怪的行为或漏洞...乍一看,这不算是什么安全问题,但是,深入探究发现,路由router机制存在隐患。 Rails 路由能够识别 URL 地址,并把它们分派给控制器动作或 Rack 应用进行处理。...HTTP HEAD请求时Rails路由在说谎 HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体。一个HEAD请求的响应中,HTTP头中包含的元信息应该和一个GET请求的响应消息相同。...这种方法可以用来获取请求中隐含的元信息,而不用传输消息实体本身。也经常用来测试超链接的有效性、可用性和最近的修改。...前面我们说过,Rails路由会把它当成GET请求来处理,所以它会被发送到控制器中。

    2.7K10

    Ruby on Rails 基础(8)

    文件/文件夹 作用 app/ 存放程序的控制器、模型、视图、帮助方法、邮件和静态资源文件。本文主要关注的是这个文件夹。 bin/ 存放运行程序的 rails 脚本,以及其他用来部署或运行程序的脚本。...config/ 设置程序的路由,数据库等。详情参阅 “设置 Rails 程序” 一文。 config.ru 基于 Rack 服务器的程序设置,用来启动程序。...任务在 Rails 的各组件中定义。如果想添加自己的任务,不要修改这个文件,把任务保存在 lib/tasks 文件夹中。 README.rdoc 程序的简单说明。...test/ 单元测试,固件等测试用文件。详情参阅 “测试 Rails 程序” 一文。 tmp/ 临时文件,例如缓存,PID,会话文件。 vendor/ 存放第三方代码。经常用来放第三方 gem。

    1.9K30

    开发项目管理工具redmine 原

    $ find files log tmp public/plugin_assets -type f -exec chmod -x {} + 测试(该测试不支持生产环境): $ bundle exec...in material ize': Could not find rmagick-2.16.0 in any of the sources (Bundler::GemNotFound) # 原因:在本地找不到...本文来源: vendor/cache/ruby/2.3.0/gems/rails-4.2.8/guides/source/4_2_release_notes.md # 检测方法1: $ curl...proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # 在浏览器访问192.168.228.130 (注意,在测试环境使用该方法测试的前提是保证该虚拟主机为当前...=production ; 冲突: 如果出现“找不到“.bundle/ ”文件”的错误信息,原因是执行命令时所在路径不对,切换至 /usr/local/src/redmine 重新执行即可!

    10.1K40

    quarkus依赖注入之四:选择注入bean的高级手段

    如果没有,就会被quarkus添加Default注解 依赖注入时,直接用Qualifier修饰符修饰注入对象,这样quarkus就会去寻找被这个Qualifier修饰符修饰的bean,找到就注入(找不到报错...@Inject HelloQualifier helloQualifier; @Test public void testQualifier() { Assertions.assertEquals...HelloQualifierC,因此启动会失败 您可以自行验证结果是否和预期一致 看到这里,您应该掌握了修饰符匹配的用法,也应该发现其不便之处:要新增注解,这样下去随着业务发展,注解会越来越多,有没有什么方法来解决这个问题呢...方法是有的,就是接下来要看的Named注解 Named注解的属性匹配 Named注解的功能与前面的Qualifier修饰符是一样的,其特殊之处在于通过注解属性来匹配修饰bean和注入bean 以刚才的业务代码为例来演示...Instance接受注入,以及业务代码如何使用指定的实现类bean,可见select(Class).get()是关键,select方法指定了实现类,然后get取出该实例 package com.bolingcavalry

    81650

    Web Hacking 101 中文版 十六、模板注入

    例如,jinja2 存在任意文件访问和远程代码执行,Rails 的 ERB 模板引擎存在远程代码执行,Shopify 的 Liquid 引擎允许访问受限数量的模板方法,以及其他。...重要结论 一定要注意 AngularJS 的使用,并使用 Angular 语法{{}}来测试字段。...所以,根据他的博文,他测试了{{1+1}},这导致站点解析了表达式并在给它的邮件中打印了2。...基于他们的 WriteUp,RoR 的控制器在 Rails APP 中负责业务逻辑。这个框架提供了一些不错的健壮的功能,包括哪些内容需要渲染用户,基于传给渲染方法的简单值。...但是,当你让 Rails 渲染一些东西,并且它找不到合适的文件来使用,他就会在RAILS_ROOT/app/views,RAILS_ROOT和系统根目录中搜索。 这就是问题的一部分。

    3.7K10

    mockito入门

    前言 最近在项目中跑单元测试发现直接使用springboot自带的测试,一整套跑起来花费数十分钟,这是无法忍受的,考虑到功能的特殊性,想到了Spring测试包自带的mockito单元测试,所以进行初次尝试使用...when(orderC.print(anyInt())).thenReturn(201); boolean res = orderB.test(); Assertions.assertTrue...这个注解主要 - classes属性主要是导入springbean,如果不配置需要倒入的bean会报依赖注入异常 默认情况需要手动配置相关需要注入bean的类否则会报错,依赖注入异常,找不到相应的...org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) 有些时间需要mock静态方法...引用 使用Mockito模拟Static静态方法 https://blog.csdn.net/qq_38646452/article/details/124943944

    35340

    旧安卓机别扔了!自制 Web 服务器了解一下

    方法实现有几种,但我认为最方便的是通过一个名为Dropbear的软件。 首先在安卓上运行: pkg upgrade pkg install dropbear 你可以选择密码认证,也可以选择公钥认证。...当然,Sinatra和Puma只是建议,你甚至可以在手机上运行完整的Rails应用程序。只要别使用默认的Rails开发服务器WEBRick就行,它只有单进程、单线程,因此不适合生产环境。...设置端口转发 如果想让Web服务器可以通过互联网访问,就需要给路由器设置端口转发,将进入的请求到新配置好的安卓Web服务器上。 具体做法取决于你的路由器。...设置好DDNS之后,你需要配置路由器,让它定期将自己的IP地址通知给DDNS服务。具体做法取决于路由器型号。 运行Hello world!...负载测试 你可以用siege这个HTTP负载测试软件来模拟真实世界中的使用情况。

    2.9K40

    SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(1)

    验证针对非 2xx 响应码可重试的方法重试正确 验证针对非 2xx 响应码不可重试的方法没有重试 验证针对可重试的方法响应超时异常重试正确:FeignClient 可以配置 ReadTimeout 即响应超时...,如果方法可以重试,则需要重试。...验证针对不可重试的方法响应超时异常不能重试:FeignClient 可以配置 ReadTimeout 即响应超时,如果方法不可以重试,则不能重试。...,以及断路器,我们需要避免这些测试一起执行的时候,断路器打开了,所以我们在所有测试调用 FeignClient 的方法开头,清空所有断路器的数据,通过: circuitBreakerRegistry.getAllCircuitBreakers...TestService1Client.anything()", "testService1Client"); } catch (ConfigurationNotFoundException e) { //找不到就用默认配置

    54320

    聊聊近期公开的几个GitLab高额奖金漏洞

    漏洞二:Wiki附件上传导致任意文件读取 【漏洞利用过程】 1、创建新项目 2、创建wiki页面 3、在gitlab服务器创建测试文件:echo hello > /tmp/ggg; 4、攻击者本地创建垃圾文件...Bearer 6、粘贴上面的markdown参数内容到wiki页面,然后下载文件 【漏洞成因】 GitLab Workhorse作为智能反向代理,专用于处理数据量大的请求,比如文件上传下载,它定义一组路由用来拦截对...GitLab rails应用程序的访问, 也就是说,所有对 Rails 组件的请求都得经过 Workhorse,但有时也可能被绕过。...【漏洞修复】 添加了remote_attachment_request_header的散列值,并将其添加到AttributeCleaner方法中,使得攻击者无法添加去伪造请求。 ?...总结 多个gitlab漏洞都是基于对业务功能的了解,手工测试+代码审计挖到的可能性较大,每个功能与业务功能逻辑关系很紧密,像漏洞一,似乎你不看代码都不知道有拷贝文件,自然更然想到这个攻击点。

    4.6K30

    Spring为什么建议构造器注入?

    装配顺序: 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。...如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。...Always use assertions for mandatory dependencies". ” ? 翻译过来就是这个意思: “不建议使用基于 field 的注入方式。...基于 setter 方法注入 通过对应变量的setXXX()方法以及在方法上面使用注解,来完成依赖注入。...这个问题具体可以表现在: 你的类不能绕过反射(例如单元测试的时候)进行实例化,必须通过依赖容器才能实例化,这更像是集成测试 你的类和依赖容器强耦合,不能在容器外使用 不能使用属性注入的方式构建不可变对象

    1.6K30

    CTO 说了,不懂 @Autowired 和 @Resource 区别的人可以领盒饭了

    先上图: 1、共同点 两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。...Always use assertions for mandatory dependencies"....当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。 当找不到与名称匹配的bean时才按照类型进行装配。...②如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。 ③如果指定了type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。...覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容

    40230

    Spring官方为什么建议构造器注入?

    装配顺序: 如果同时指定了name和type,则从 Spring 上下文中找到唯一匹配的 bean 进行装配,找不到则抛出异常。...如果指定了name,则从上下文中查找名称(id)匹配的 bean 进行装配,找不到则抛出异常。...如果指定了type,则从上下文中找到类型匹配的唯一 bean 进行装配,找不到或是找到多个,都会抛出异常。...Always use assertions for mandatory dependencies". ” ❞ 翻译过来就是这个意思: ❝ “不建议使用基于 field 的注入方式。...这个问题具体可以表现在: 你的类不能绕过反射(例如单元测试的时候)进行实例化,必须通过依赖容器才能实例化,这更像是集成测试 你的类和依赖容器强耦合,不能在容器外使用 不能使用属性注入的方式构建不可变对象

    29640
    领券