由于某种原因,我的samplePartNumber代码不再一起工作,我不断收到错误。当前的一个是致命错误:在第28行的/Users/bradley/code/website/app/tests/unit/Web/Forms/SamplePartNumberFormTest.php中调用未定义的方法Web \ Forms \ SamplePartNumberForm :: validate()
我已经完成了一百次的代码,并且会欣赏新鲜的眼睛。
以下是测试:
<?php
use \Illuminate\Validation\Validator;
class SamplePartNumberFormTest extends TestCase
{
/**
* Setup method
*/
public function setUp()
{
parent::setUp();
$this->form = $this->app->make('Mle\Web\Forms\SamplePartNumberForm');
}
/**
* @test
*/
public function returns_true_with_valid_input()
{
$input = [
'part_number' => 'ASD-5',
'quantity' => '3',
'annual_usage' => '22000',
];
$result = $this->form->validate($input);
$this->assertTrue($result);
}
/**
* @test
*
* @expectedException \Mle\Web\Forms\FormValidationException
*/
public function throws_exception_with_invalid_input()
{
$input = [];
$result = $this->form->validate($input);
}
}
以下是表格:
<?php
namespace Web\Forms;
use Forms\ValidatableFormInterface;
use Forms\FormValidator;
class SamplePartNumberForm implements ValidatableFormInterface
{
use FormValidator;
/**
* Rules for validation
* @var array
*/
protected $rules = ['part_number' => 'required', 'quantity' => 'required',
'annual_usage'=> 'required'];
}
答案 0 :(得分:0)
$result = $this->form->validate($input);
您在此行收到错误,因为此处 $ this-&gt; form 实例所代表的 \ Web \ Forms \ SamplePartNumberForm 类缺少方法验证()即可。您需要在 validate(array $ input_structure)
中实现它其次你在课堂上有非法的进口使用。这需要位于 class {} 体外的文件的全局范围内;我在命名空间声明后推荐它。
class SamplePartNumberForm implements ValidatableFormInterface
{
use FormValidator;
}
第三,如果你在 ValidatableFormInterface 中有任何方法,你还需要在具有公共可见性的SamplePartNumberForm类中实现它们。