似乎我遇到的每个单元测试示例都非常明显和罐装.像断言x + 3 == 8等等.我只是很难看到我如何单元测试现实世界的东西,比如SQL查询,或者用于表单验证的regEx实际上是否正常工作.
例证:我正在开发两个由DB驱动的ASP.NET MVC 2站点.我为每个人都有一个测试单元解决方案,但不知道哪种测试会有用.该站点将完成的大部分工作是向数据库写入数据,或从数据库中检索和组织数据.我只是测试各种查询是否成功访问了数据库?我如何测试正确性(例如,数据被写入正确的字段,或正确检索的数据)?
我只是很难将我自己的非正式测试和调试方式转换为更正式的断言(x)类测试.
我的任务是为一家小型本地企业提供电子商务解决方案.我的客户使用Intuit/Quickbooks销售点软件.我刚刚发现Intuit有一系列允许互操作性的PHP 5+类(链接可能会偶然发现其他任何人:https://code.intuit.com/sf/sfmain/do/viewProject/projects.php_devkit).
该网站将托管在共享主机上,因此这两个系统完全分开.她的桌面确实可以上网.
所以,我的问题:
付款处理将通过Stripe(http://www.stripe.com)处理.这实际上只适用于库存/订单同步.
由官方Symfony Google Group交叉发布,因为时间问题:
我正在努力将我的网站上传到我的主机.在开发环境中一切运行良好 - 没有错误,没有警告.当我尝试在prod(localhost/web/app.php /)中访问它时,我得到一个空白屏幕.我试图清除缓存,看看是否有帮助,但得到以下错误:
$ app/console cache:clear --env=prod
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
The parameter "kernel.trusted_proxies" must be defined.
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地清除开发缓存.
请帮忙.
与此问题类似,我需要为我的网站的管理员和前端捆绑包单独登录.管理员实际上是一个独立的捆绑包vendors.
现在,我的路由看起来像:
应用程序/配置/ routing.yml中:
AcmeSiteBundle:
resource: "@SiteBundle/Resources/config/routing.yml"
prefix: /
AcmeAdminBundle:
resource: "@AdminBundle/Resources/config/routing.yml"
prefix: /admin/
Run Code Online (Sandbox Code Playgroud)
这两个bundle的各个routing.yml文件都有:
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_security_login:
pattern: /login
defaults: { _controller: FOSUserBundle:Security:login }
fos_user_security_check:
pattern: /login_check
defaults: { _controller: FOSUserBundle:Security:check }
fos_user_security_logout:
pattern: /logout
defaults: { _controller: FOSUserBundle:Security:logout }
Run Code Online (Sandbox Code Playgroud)
我的防火墙在security.yml中:
firewalls:
main:
context: site
pattern: ^/admin/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: /admin/login
check_path: /admin/login_check
logout:
path: /admin/logout
anonymous: true
frontend:
context: site …Run Code Online (Sandbox Code Playgroud) 尝试在PhpStorm中运行我自己的Symfony单元测试时出现以下错误:
/usr/bin/php /home/kevin/www/src/Blah/MyBundle/Tests/Controller/HomeControllerTest.php
PHP Fatal error: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found in /home/kevin/www/src/Blah/MyBundle/Tests/Controller/HomeControllerTest.php on line 8
PHP Stack trace:
PHP 1. {main}() /home/kevin/www/src/Blah/MyBundle/Tests/Controller/HomeControllerTest.php:0
Fatal error: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found in /home/kevin/www/src/Blah/MyBundle/Tests/Controller/HomeControllerTest.php on line 8
Call Stack:
0.0002 234112 1. {main}() /home/kevin/www/src/Blah/MyBundle/Tests/Controller/HomeControllerTest.php:0
Process finished with exit code 255
Run Code Online (Sandbox Code Playgroud)
一些研究告诉我,我可能不得不将PhpStorm/Xdebug指向Symfony的bootstrap和/或测试套件XML文件,但我不确定如何在PhpStorm中这样做.在各种配置屏幕中没有任何东西在跳出来.请帮忙.
有关在原则 2 中创建一对多单向关系的几个问题:
编辑:做一些挖掘,看起来我的问题源于我正在创建的表单建立在FOSUserBundle的注册表单之上.为什么这是一个问题?因为如果表单无效,它们RegistrationController会抛出一个REGISTRATION_FAILURE事件,但事件看起来并不像是一个监听器.因此,除了系统根本不处理之外,无效状态实际上没有做任何事情.它甚至没有返回表单(有错误).
我有一个相对简单的表单主题我想使用,以便在我的表单顶部的块中显示我的表单错误:
{% form_theme form _self %}
{% block form_errors %}
{% spaceless %}
{% if errors|length > 0 %}
<div class="errors pt-2 mb-2">
<ul>
{% for error in errors %}
<li>{{ error.message }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endspaceless %}
{% endblock form_errors %}
Run Code Online (Sandbox Code Playgroud)
我在表单模板中引用它:
{% form_theme form 'Form/errors.html.twig' %}
Run Code Online (Sandbox Code Playgroud)
然后我尝试用一个简单的方法调用它:
{{ form_errors(form) }}
Run Code Online (Sandbox Code Playgroud)
但是,当我故意向表单输入提供不正确的数据并尝试提交时,不会出现错误div.由于存在6个验证错误,因此提交失败,但HTML源中未显示错误.
看看文档,我认为我做得对,但我显然错过了一些东西.
我刚刚了解了PRG模式的存在,我想知道ASP.NET MVC 2或更高版本是否实现了它.如果没有,是否有相关的示例或教程?我见过一些MVC 1,但我不确定它们是否仍然相关.
以下两者之间是否存在明显的性能差异:
something.Where(predicate).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
和
something.FirstOrDefault(predicate);
Run Code Online (Sandbox Code Playgroud)
?
我倾向于使用两者,但我想知道在性能方面是否有明显的赢家.
我的任务是为遗留代码编写单元测试.我当前的测试是在一个对象上,它将Doctrine 2实体管理器作为构造函数参数.我需要能够提供测试数据,以便我可以可靠地测试其方法.
所以,理想情况下,我希望能够创建一个模拟实体管理器,然后创建一个模拟实体并将其附加到模拟实体管理器,然后在我的测试中使用它.这可能吗?如果是这样,怎么样?
这个项目使用Symfony 2.4+,所以我很确定在设置中增加了一两个皱纹.
php ×6
symfony ×6
doctrine-orm ×2
c#-4.0 ×1
e-commerce ×1
forms ×1
linq ×1
phpstorm ×1
phpunit ×1
quickbooks ×1
twig ×1
unit-testing ×1
xdebug ×1