【问题标题】:Giving descriptive test names to Mojolicious tests?为 Mojolicious 测试提供描述性测试名称?
【发布时间】:2015-11-21 06:08:56
【问题描述】:

我正在整理我的 Mojolicious 测试并给它们适当的描述性名称。举个例子:

$t->get_ok( '/api/ninjablock', 'Run a GET against /api/ninjablock with no credentials' )
     ->status_is( 403, '  and it has correctly returned a 403' );

然而,测试输出看起来像这样:

ok 1 - GET /api/ninjablock
ok 2 -   and it has correctly returned a 403

我假设我遗漏了一些明显的东西,但是如何让第一个测试显示除 GET /api/ninjablock 以外的名称?

【问题讨论】:

  • get_ok:来自文档,我认为这不应该起作用,它说“与 Mojo::UserAgent 中的“get”相同的参数”,没有提到用于命名测试的附加参数。不过,get() 需要额外的参数,所以这可能就是原因。

标签: perl testing mojolicious


【解决方案1】:

根据Test::Mojo source codeget_ok()只接受三个参数,($self, $method, $url)。因此,对于 Test::Mojo 本身,您无法按照当前的方式为您的测试分配描述。

很遗憾你不能提供描述,但是你可以在Test::Moreok()is()等子例程中封装任何你喜欢的测试。

不要害怕把它提升到更高的水平。如果您需要在不提供凭据时测试多个 URL 是否返回 403:

ok($t->get_ok($_)->status_is(403) => "$_ no creds : 403") for @urls;

请注意,这将导致额外的测试输出行(或额外的测试编号),但大多数时候无论如何您都应该在工具中运行,因此只会显示失败的测试。如果您需要一些额外的组织,可以考虑Test::Group

【讨论】:

  • 啊,完美。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2019-01-18
  • 2016-12-25
  • 2018-06-18
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
相关资源
最近更新 更多