我试图让Mockery声明一个给定的方法被调用至少一次.
我的测试类是:
use \Mockery as m;
class MyTest extends \PHPUnit_Framework_TestCase
{
public function testSetUriIsCalled()
{
$uri = 'http://localhost';
$httpClient = m::mock('Zend\Http\Client');
$httpClient->shouldReceive('setUri')->with($uri)->atLeast()->once();
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,有一个测试(希望)创建了一个期望setUri将被调用的测试.由于没有涉及任何其他代码,我无法想象它可以调用,但我的测试通过.有谁能解释为什么?
我需要在注销时修改我的用户对象.为此,我有一个security.yml,其中包含以下内容(除其他外) -
#...
logout:
success_handler: my.logout_success_handler
target: /
#...
Run Code Online (Sandbox Code Playgroud)
...这定义了一个注销成功处理程序,它在services.yml中定义,如下所示 -
my.security.logout_success_handler:
class: My\Security\LogoutSuccessHandler
arguments: ["@security.context", "@doctrine.orm.default_entity_manager"]
Run Code Online (Sandbox Code Playgroud)
...最后,我的处理程序的业务端是这样的 -
// ...
public function onLogoutSuccess(Request $request)
{
$user = $this->securityContext->getToken()->getUser();
// ... do stuff with the user object....
$this->em->flush();
// now what?
}
// ...
Run Code Online (Sandbox Code Playgroud)
那么,它说"现在是什么?" 我知道我需要返回一个Response对象.理想情况下,我希望该响应对象将用户重定向到security.yml中logout.target中定义的任何内容.
有一种简单的方法可以查询吗?或者,更好的是,还有另一种做这种事情的方法,它不需要我参与请求/响应对象吗?
谢谢
使用dojo.dnd,我想允许用户一次只拖动一个项目,而不是任何任意数字,根据dojo的默认行为.
此时,用户可以按住Ctrl并一次单击多个可拖动项目,然后将它们全部作为一组拖动.我想禁用它,以便用户只能在任何给定时间拖动一个项目.
我正在使用dojo.dnd.Source(),如下所示.
new dojo.dnd.Source(containerNode)
Run Code Online (Sandbox Code Playgroud)
...这使得containerNode的所有子节点都可以拖动.
谢谢.
我有这个MSSQL片段 -
CONVERT(INT, HASHBYTES('MD5', {some_field}))
Run Code Online (Sandbox Code Playgroud)
...而且我真的很喜欢MySQL等价物.我很确定这HASHBYTES('MD5', ...)一点与MySQL的相同MD5(...)- 这CONVERT(INT, ...)真的令我感到困惑.
谢谢.
我确信这有一个简单的解决方案,但我无法理解正在发生的事情.我有一个实体,称为Payment等两个实体叫User和Household.
A User有很多Payments而且Household有很多Payments.这全部映射为Payment使用YAML的单向manyToOne关系,如此(希望这符合http://docs.doctrine-project.org/projects/doctrine-orm/en/2.1/reference/association上的指导)-mapping.html#many-to-one-unidirectional) -
Payment:
type: entity
table: payments
id:
_id:
type: integer
column: payment_id
generator:
strategy: AUTO
manyToOne:
_user:
targetEntity: Application_Model_User
joinColumn:
name: user_id
referencedColumnName: payment_id
_household:
targetEntity: Application_Model_Household
joinColumn:
name: household_id
referencedColumnName: payment_id
Run Code Online (Sandbox Code Playgroud)
数据库方面,我有三个表users,payments和households.该payments表具有(除了它的主键之外)两个名为user_id和的列household_id,它们对应于其他两个表的主键.
问题是,当我尝试坚持一个新的时,Payment我从mySql返回一个错误,告诉我该user_id列payments不能为null.一些挖掘已经确定了doctrine正在null为INSERT语句user_id和household_idINSERT语句提供.对象图肯定是正确的. …