Git Product home page Git Product logo

Comments (7)

kenjis avatar kenjis commented on May 24, 2024

Did you uncomment code to enable monkey patching in tests/Bootstrap.php ?
See https://github.com/kenjis/ci-phpunit-test/blob/master/docs/HowToWriteTests.md#monkey-patching
Working example: https://github.com/kenjis/ci-app-for-ci-phpunit-test/blob/master/application/tests/Bootstrap.php#L299-L322

from ci-phpunit-test.

kenjis avatar kenjis commented on May 24, 2024

I installed CodeIgniter 3.0.1 and ci-phpunit-test:

$ composer create-project kenjis/codeigniter-composer-installer ci-rest
$ cd ci-rest
$ composer require kenjis/ci-phpunit-test:1.0.x@dev --dev
$ php vendor/kenjis/ci-phpunit-test/install.php

And I edited tests/Bootstrap.php to enable monkey patching:

--- a/application/tests/Bootstrap.php
+++ b/application/tests/Bootstrap.php
@@ -295,7 +295,6 @@ switch (ENVIRONMENT)
  * If you want to use monkey patching, uncomment below code and configure
  * for your application.
  */
-/*
 require __DIR__ . '/_ci_phpunit_test/patcher/bootstrap.php';
 MonkeyPatchManager::init([
        'cache_dir' => APPPATH . 'tests/_ci_phpunit_test/tmp/cache',
@@ -320,7 +319,6 @@ MonkeyPatchManager::init([
        ],
        'exit_exception_classname' => 'CIPHPUnitTestExitException',
 ]);
-*/

 /*
  * -------------------------------------------------------------------

And I installed codeigniter-restserver files.

Then I wrote a test case:

<?php

class Example_test extends TestCase
{
    public function test_users()
    {
        $output = $this->request('GET', 'api/example/users');
        $this->assertEquals(
            '[{"id":1,"name":"John","email":"[email protected]","fact":"Loves coding"},{"id":2,"name":"Jim","email":"[email protected]","fact":"Developed on CodeIgniter"},{"id":3,"name":"Jane","email":"[email protected]","fact":"Lives in the USA","0":{"hobbies":["guitar","cycling"]}}]',
            $output
        );
    }
}
$ phpunit --debug controllers/api/Example_test.php 
PHPUnit 4.7.7 by Sebastian Bergmann and contributors.
Warning:    The Xdebug extension is not loaded
        No code coverage will be generated.


Starting test 'Example_test::test_users'.
E

Time: 142 ms, Memory: 4.25Mb

There was 1 error:

1) Example_test::test_users
CIPHPUnitTestExitException: exit() called in REST_Controller::response()

/home/kenji/tmp/ci-rest/application/libraries/REST_Controller.php:746
/home/kenji/tmp/ci-rest/application/libraries/REST_Controller.php:665
/home/kenji/tmp/ci-rest/application/tests/_ci_phpunit_test/CIPHPUnitTestRequest.php:285
/home/kenji/tmp/ci-rest/application/tests/_ci_phpunit_test/CIPHPUnitTestRequest.php:246
/home/kenji/tmp/ci-rest/application/tests/_ci_phpunit_test/CIPHPUnitTestRequest.php:93
/home/kenji/tmp/ci-rest/application/tests/_ci_phpunit_test/CIPHPUnitTestCase.php:105
/home/kenji/tmp/ci-rest/application/tests/controllers/api/Example_test.php:7

FAILURES!
Tests: 1, Assertions: 0, Errors: 1.

[Edited] Fixed test case and the results.

from ci-phpunit-test.

kenjis avatar kenjis commented on May 24, 2024

I found we need to fix REST_Controller for ci-phpunit-test.
See kenjis/codeigniter-restserver-with-ci-phpunit-test@73a59c9

from ci-phpunit-test.

kenjis avatar kenjis commented on May 24, 2024

Sorry, the patch for REST_Controller.php should be:

--- a/application/libraries/REST_Controller.php
+++ b/application/libraries/REST_Controller.php
@@ -653,6 +653,11 @@ abstract class REST_Controller extends CI_Controller {
         {
             call_user_func_array([$this, $controller_method], $arguments);
         }
+        catch (CIPHPUnitTestExitException $ex)
+        {
+            // This block is for ci-phpunit-test
+            throw $ex;
+        }
         catch (Exception $ex)
         {
             // If the method doesn't exist, then the error will be caught and an error response shown

from ci-phpunit-test.

kenjis avatar kenjis commented on May 24, 2024

I added documentation for CodeIgniter Rest Server:
https://github.com/kenjis/ci-phpunit-test/blob/master/docs/HowToWriteTests.md#codeigniter-rest-server

from ci-phpunit-test.

kenjis avatar kenjis commented on May 24, 2024

@RodolfoSilva Did you solve your problem?

from ci-phpunit-test.

RodolfoSilva avatar RodolfoSilva commented on May 24, 2024

Yes, thanks.

from ci-phpunit-test.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.