如何在API中再次运行webtestcase?有关功能测试的默认指南仅提供以下命令:
$client = static::createClient();
$crawler = $client->request('GET', '/some-url');
Run Code Online (Sandbox Code Playgroud)
Crawler类是一个DOM爬虫.我检查了FrameworkBundle\Client类的引用,但是找不到允许我发出返回原始Response的请求的方法.至少这样,我将能够json_decode输出并进行我的测试.
我可以用什么来实现这个目标?
Codeception默认_bootstrap.php文件状态:
<?php
// Here you can initialize variables that will be available to your tests
Run Code Online (Sandbox Code Playgroud)
所以我想在其中初始化一个变量:
<?php
$a = 5;
Run Code Online (Sandbox Code Playgroud)
但是,当我使用它时SomeAcceptanceCept:
<?php
// ....
$I->fillField('description', $a);
Run Code Online (Sandbox Code Playgroud)
我明白了: ErrorException: Undefined variable: a
我做var_dump了_bootstrap.php,它确实在验收测试之前运行了一次,但是我的测试中没有变量.
我似乎无法找到任何关于此的文档.
我实际上是在尝试初始化Faker实例以在我的测试中使用.
我有一个使用的库,CanvasElement因此依赖于它dart:html.现在我正在尝试为同一个库编写单元测试.但是,尝试运行它时出现以下错误:
The built-in library 'dart:html' is not available on the stand-alone VM.
Run Code Online (Sandbox Code Playgroud)
以下是我的测试文件的样子:
library PiflexUmlTest;
import 'package:PiflexUml/lib.dart';
import 'package:unittest/unittest.dart';
part 'src/geometry/vector_test.dart';
main () {
testVector();
}
Run Code Online (Sandbox Code Playgroud)
我知道它失败了,因为lib.dart文件中的库本身有一行说明:
library PiflexUml;
// ....
import 'dart:html';
part "blahblah.dart";
part "something_else.dart"
// ....
Run Code Online (Sandbox Code Playgroud)
尽管库本身依赖于它,但我并不是要尝试测试与HTML有关的类.
我的解决方案是什么?有没有办法只导入我想测试的类而不导入整个lib?或者我是否必须将我的lib拆分为依赖于html的部分和非HTML依赖部分?
我有一个使用 rails_admin gem 和 MySql 数据库的 Rails4 应用程序。
我有一个User模型,其中has_many Job s 。现在,在 rails_admin 仪表板中,用户可以正常删除,除非它有一些Jobs。在这种情况下,外键失败,因为没有dependent: :destroy定义关系。这是预期行为。
但是,不是收到“无法删除或更新父行:外键约束失败”错误,我想显示一条很好的消息:“如果用户有工作,则无法删除它”。
有没有一种优雅的方法可以在rails_admin不进行自定义操作的情况下实现这一目标?
如何使用shoulda匹配器测试此ActiveRecord关系?
class User < ActiveRecord::Base
has_many :articles
end
class Article < ActiveRecord::Base
belongs_to :author, class_name: 'User'
end
Run Code Online (Sandbox Code Playgroud)
describe User do
it { should have_many(:articles) }
end
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
1) User should have many articles
Failure/Error: it { should have_many(:articles) }
Expected User to have a has_many association called articles (Article does not have a user_id foreign key.)
# ./spec/models/user_spec.rb:4:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)
所以它显然希望关系字段user_id因为User类名而被命名.我希望有一些测试方法可以用来覆盖这种期望
it { should have_many(:articles).as(:owner) }
Run Code Online (Sandbox Code Playgroud)
但我找不到类似的东西.我错过了一些明显的东西吗
我想使用相同的代码来管理多个实体,但它可能会有所不同,具体取决于它是否有某种方法.这就是为什么我需要检查对象是否有名称的方法.有没有办法做到这一点?
我在设置Nginx以与Puma服务器一起使用Rails 4应用程序时遇到问题.
问题似乎是在我的Nginx配置中,因为我不断收到502 Bad Gateway错误,错误日志指出如下:
*1 connect() to unix:///srv/vhosts/rumysitename/www/mysitename/tmp/mysitename.sock failed
(2: No such file or directory) while connecting to upstream, client: XX.XXX.XX.XXX,
server: mysitename.com, request: "GET /favicon.ico HTTP/1.1", upstream:
"http://unix:///srv/vhosts/rumysitename/www/mysitename/tmp/mysitename.sock:/favicon.ico",
host: "mysitename.com"
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的Nginx站点配置:
upstream mysitename {
server unix:///srv/vhosts/rumysitename/www/mysitename/tmp/mysitename.sock;
}
server {
listen 80;
server_name mysitename.com;
root /srv/vhosts/rumysitename/www/mysitename/public;
location / {
proxy_pass http://mysitename;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* ^/assets/ {
# Per RFC2616 - 1 year maximum expiry
expires 1y;
add_header Cache-Control public;
# Some …Run Code Online (Sandbox Code Playgroud) symfony ×2
codeception ×1
dart ×1
json ×1
nginx ×1
php ×1
puma ×1
rails-admin ×1
rspec ×1
shoulda ×1
unit-testing ×1