我是一名新手开发人员,试图为现有的 Laravel 应用程序启动测试套件,但我没有测试经验。现在我只是想建立一些测试来获得一些信心和经验来编写更重要的测试。我正在尝试在模型上测试关系(我意识到这不是一个非常明智的测试)并尝试创建一个模拟模型对象来这样做(我也明白最好在 sqlite db 的内存中执行此操作,但主要这里的目标是测试控制器,但我不知道如何处理那里的身份验证问题)。我有以下简单而愚蠢的测试:
public function testFoo()
{
$lead = m::mock('Lead');
$this->mock->shouldReceive('program')->once();
$this->assertEquals($lead->program_id, $lead->program->id);
}
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
LeadTest::testFoo
BadMethodCallException: Received Mockery_0_Lead::getAttribute(), but no expectations were specified
Run Code Online (Sandbox Code Playgroud)
我不明白这个错误试图告诉我什么,我在谷歌上搜索这个问题或阅读我能找到的文档没有任何帮助。
我假设我没有设置预期的返回值,但这是一个非常通用的测试,硬编码预期的返回值似乎不正确。我在这里缺少什么?
我只是在测试 Laravel 关系,以确保我正确设置/实施了一些东西:
public function program()
{
return $this->belongsTo('Program');
}
Run Code Online (Sandbox Code Playgroud) 我是一个全新的Laravel开发人员,我正在使用VentureCraft可修改库来记录模型修订版.我需要记录多对多模型的修订版本,我的理解是Revisionable不支持这一点.我看过其他图书馆,他们似乎也没有.有没有办法可以做到这一点?即日志更改到没有模型类的数据透视表?
对不起这个广泛的问题,但是我被困住了,不知道该怎么做.任何提示或有用的文档将不胜感激.
我想使用可修改的库,但实际上我只需要在修订表中添加一条记录,其中相应数据透视表中的数据已更改,我不知道如何执行此操作.提前致谢.