Silex:如何以及为何使用测试

时间:2017-06-11 20:53:37

标签: php testing silex

关于测试的文档对我来说并不是很清楚。它说你可以使用测试来检查我的页面和我的系统是否正常工作。

在我看来,这意味着它可以检查是否正确使用了所有权利或类似的东西。但我不明白为什么我会花这么多时间编写测试部分。

我希望有人可以解释并说服我为什么要使用测试,作为第二部分:我该如何使用它!

因此,作为一个例子,这可能是我的基本index.php文件:

<?php

require_once __DIR__.'/../vendor/autoload.php';

$app = new Silex\Application();
$app['debug'] = true;

$routes = $app['controllers_factory'];

$routes->match('/', function () use ($app) {
    return 'Hello';
});

$app->mount('/', $routes);
$app->run();

你能给我一个例子或调整我的路线并用它进行一些测试。请不要使用文档中的示例:它们对我没有意义,这就是我在这里提出这个问题的全部原因。

修改

所以,你的评论都很有帮助。我想我已经开始理解为什么它可能有用了。现在,我需要的只是一个完全理解它的例子。让我们说我已经有了这条路线:

$routes->match('/user/login', function (Request $request) use ($app) {

    $form = $app['form.factory']->createBuilder(FormType::class)
        ->add('username', TextType::class, array(
            'constraints' => array(new Assert\NotBlank(), new Assert\Length(array('min' => 3,'max' => 3))),
            'label' => 'Username',
            'required' => 'required',
            'attr' => array('class' => 'input-field', 'autocomplete' => 'off', 'placeholder' => 'Docent afkorting'),
            'label_attr' => array('class' => 'label'),
            'error_bubbling' => true
        ))
        ->add('password', PasswordType::class, array(
            'constraints' => array(new Assert\NotBlank(), new Assert\Length(array('min' => 5))),
            'label' => 'Password',
            'required' => 'required',
            'attr' => array('class' => 'input-field', 'autocomplete' => 'off', 'placeholder' => 'Wachtwoord'),
            'label_attr' => array('class' => 'label'),
            'error_bubbling' => true
        ))
        ->add('submit', SubmitType::class, [
            'label' => 'Login',
            'attr' => array('class' => 'submit'),
        ])
        ->getForm();

    $form->handleRequest($request);

    if ($form->isValid()) {
        $data = $form->getData();
        $user = new User();

        if($user->login($data['username'],$data['password'])){
            return $app->redirect($app['url_generator']->generate('home'));
        }
        else{
            return $app['twig']->render('form.twig', [
                'content' => 'Incorrect username or password<br><br>',
                'form' => $form->createView(),
            ]);
        }
    }

    return $app['twig']->render('form.twig', [
        'form' => $form->createView()
    ]);
})->bind('user.login');

我需要做些什么来进行适当的测试?

1 个答案:

答案 0 :(得分:1)

如果您不熟悉软件测试,您可能想知道为什么需要此软件。每次更改应用程序时,都必须对其进行测试。这意味着浏览所有页面并确保它们仍在工作。功能测试可以节省大量时间,因为它们使您能够通过运行单个命令在不到一秒钟的时间内测试应用程序。

来源: https://silex.symfony.com/doc/2.0/testing.html#why