version: v0.5.0 | v0.4.0 | v0.3.0 | v0.2.0
- function
reset_instance() - function
set_is_cli($return) - function
load_class_instance($classname, $instance) - class TestCase
TestCase::request($method, $argv, $params = [], $callable = null)TestCase::ajaxRequest($method, $argv, $params = [], $callable = null)TestCase::assertResponseCode($code)TestCase::assertRedirect($uri, $code = null)TestCase::getDouble($classname, $params)TestCase::verifyInvoked($mock, $method, $params)TestCase::verifyInvokedOnce($mock, $method, $params)TestCase::verifyInvokedMultipleTimes($mock, $method, $times, $params)TestCase::verifyNeverInvoked($mock, $method, $params)TestCase::warningOff()TestCase::warningOn()
Reset CodeIgniter instance. You must create new controller instance after calling this function.
reset_instance();
$controller = new Welcome();
$this->CI =& get_instance();| param | type | description |
|---|---|---|
$return |
bool | return value to set |
Set return value of is_cli() function.
set_is_cli(FALSE);| param | type | description |
|---|---|---|
$classname |
string | class name |
$instance |
object | object instance |
Inject an instance directly into load_class() function.
$email = $this->getMockBuilder('CI_Email')
->setMethods(['send'])
->getMock();
$email->method('send')
->willReturn(TRUE);
load_class_instance('email', $email);| param | type | description |
|---|---|---|
$method |
string | HTTP method |
$argv |
array/string | controller, method [, arg1, ...] / URI string |
$params |
array | POST parameters / Query string |
$callable |
callable | [Deprecated] function to run after controller instantiation |
returns (string) output strings (view)
Run a controller method or make a request to URI string after reset_instance().
$output = $this->request('GET', ['Form', 'index']);$output = $this->request('GET', 'products/shoes/show/123');Set function to run after controller instantiation.
4th param $callable of $this->request() method is deprecated. Use $this->request->setCallable() method instead.
before:
$load_agent = function ($CI) {
$CI->load->library('user_agent');
};
$output = $this->request('GET', ['Bbs', 'index'], [], $load_agent);↓
after:
$this->request->setCallable(
function ($CI) {
$CI->load->library('user_agent');
};
);
$output = $this->request('GET', ['Bbs', 'index']);Set function to run before controller instantiation.
$this->request->setCallablePreConstructor(
function () {
// Get mock object
$auth = $this->getDouble(
'Ion_auth', ['logged_in' => TRUE]
);
// Inject mock object
load_class_instance('ion_auth', $auth);
}
);If you want to enable hooks, call $this->request->enableHooks() method. It enables only pre_controller, post_controller_constructor, post_controller hooks.
$this->request->enableHooks();
$output = $this->request('GET', 'products/shoes/show/123');| param | type | description |
|---|---|---|
$method |
string | HTTP method |
$argv |
array/string | controller, method [, arg1, ...] / URI string |
$params |
array | POST parameters / Query string |
$callable |
callable | [Deprecated] function to run after controller instantiation |
returns (string) output strings
The same as TestCase::request(), but this makes a Ajax request. This adds only $_SERVER['HTTP_X_REQUESTED_WITH'].
| param | type | description |
|---|---|---|
$code |
int | HTTP status code |
Check for a specific response code on your controller tests.
| param | type | description |
|---|---|---|
$uri |
string | URI to redirect |
$code |
int | HTTP status code |
Check if redirect() is called on your controller tests.
| param | type | description |
|---|---|---|
$classname |
string | class name |
$params |
array | [method_name => return_value] |
returns (object) PHPUnit mock object
Get PHPUnit mock object.
$email = $this->getMockBuilder('CI_Email')
->setMethods(['send'])
->getMock();
$email->method('send')
->willReturn(TRUE);You could write code above like below:
$email = $this->getDouble('CI_Email', ['send' => TRUE]);| param | type | description |
|---|---|---|
$mock |
object | PHPUnit mock object |
$method |
string | method name |
$params |
array | arguments |
Verifies a method was invoked at least once.
$loader->expects($this->atLeastOnce())
->method('view')
->with(
['shop_confirm', $this->anything(), TRUE]
);You could write code above like below:
$this->verifyInvoked(
$loader,
'view',
[
['shop_confirm', $this->anything(), TRUE]
]
);| param | type | description |
|---|---|---|
$mock |
object | PHPUnit mock object |
$method |
string | method name |
$params |
array | arguments |
Verifies that method was invoked only once.
$loader->expects($this->once())
->method('view')
->with(
['shop_confirm', $this->anything(), TRUE]
);You could write code above like below:
$this->verifyInvokedOnce(
$loader,
'view',
[
['shop_confirm', $this->anything(), TRUE]
]
);| param | type | description |
|---|---|---|
$mock |
object | PHPUnit mock object |
$method |
string | method name |
$times |
int | times |
$params |
array | arguments |
Verifies that method was called exactly $times times.
$loader->expects($this->exactly(2))
->method('view')
->withConsecutive(
['shop_confirm', $this->anything(), TRUE],
['shop_tmpl_checkout', $this->anything()]
);You could write code above like below:
$this->verifyInvokedMultipleTimes(
$loader,
'view',
2,
[
['shop_confirm', $this->anything(), TRUE],
['shop_tmpl_checkout', $this->anything()]
]
);| param | type | description |
|---|---|---|
$mock |
object | PHPUnit mock object |
$method |
string | method name |
$params |
array | arguments |
Verifies that method was not called.
$loader->expects($this->never())
->method('view')
->with(
['shop_confirm', $this->anything(), TRUE]
);You could write code above like below:
$this->verifyNeverInvoked(
$loader,
'view',
[
['shop_confirm', $this->anything(), TRUE]
]
);Turn off WARNING in error reporting.
Restore error reporting.