Laravel单元测试 - 如何检查验证规则或类?

时间:2014-04-14 16:41:54

标签: php unit-testing laravel

我正在做一个学校项目,我们必须提交一些单元测试示例。我阅读了很多教程但却无法理解如何使用它。

这是我的代码,

我试图通过手动输入检查验证规则:

<?php



class Student {

    public static $rules = array(

    'username'=>'required|alpha_num|min:6',

    'firstname'=>'required|alpha|min:2',

    'lastname'=>'required|alpha|min:2',

    'studentid'=>'numeric|min:7|unique:student',

    'email'=>'required|email|unique:student',

    'password'=>'required|alpha_num|between:6,12|confirmed',

    'password_confirmation'=>'required|alpha_num|between:6,12'

    );



}

class ChronosTest extends TestCase {

    public function testUser()
    {

        $student = new Student;

        //$student->username = "john433";



        $validator = Validator::make(array("username"=>"john433", "firstname"=>"johne"), Student::$rules);

        $this->assertTrue($validator->passes());



    }

}

每次使用assertTrue时都会得到这个:

att http://4.ii.gl/sTeWIK.png

每次使用assertFalse时都会得到这个:

att http://1.ii.gl/y3il6n.png

2 个答案:

答案 0 :(得分:4)

发现问题 - 每次都返回false,因为我没有包含所有必需的输入,如密码等。

以下工作正常:

$validator = Validator::make(array(
    "username"=>"john433",
    "firstname"=>"john",
    "lastname"=>"doe",
    "email"=>"johnerr@gmail.com",
    "password"=>"passtest",
    "password_confirmation"=>"passtest"
), Student::$rules);

答案 1 :(得分:0)

您要测试的是Laravel代码。一个人根本不想测试他/她没有写自己的代码。尝试寻找新的例子。也;静态属性很难测试,因为它们不能被模拟。我想你还有很多需要学习的地方。这里有关于如何编写测试和测试内容的好文章:https://medium.com/laravel-4/48414f4782d0