我习惯使用zend或rails等框架并使用各种测试方法。然而,我无法理解如何测试php中具有以下方法的常规,非框架类:
class Example{
public function add(){}
public function edit(){}
public function delete(){}
public function list(){}
}
我知道你需要一个测试或测试文件夹,那部分下来。里面的类会是这样的吗:
class ExampleTest extends PHPUnit_Framework_TestCase{}
如果有,功能是什么?和上面一样吗?它会知道使用示例类还是我必须要求它?
当涉及到测试没有像zend或其他东西的框架时,我迷路了....谢谢你的帮助。
注意:我没有使用任何类型的框架(除了phpunit),所以指向zend或cakephp是没有帮助的。
我不确定这是不是一个答案,但你需要做的就是阅读PHPUnit手册:http://www.phpunit.de/manual/current/en/
我不确定我理解你的问题,但我想你是在问如何测试,而你不使用像zf等框架。在我看来,这是在学习基础知识之前学习框架的糟糕部分。我认为这是一个错误(可悲的是,我也犯了这个错误),很多人试图使用框架,但他们没有足够的php知识,所以他们做了很多不好的做法(如。G:我,现在我试图忘记我从框架中学到的东西,当我刚接触php),所以我的建议是使用框架,当你完成了php基础(这部分不是你的问题,只是一个建议,当我看到"我很擅长框架,但我失败了框架")。
如果我回到你的问题,在这里是的,你需要(需要)的例子类,否则你怎么能创建一个新的例子对象?不,你的例子类和它的方法不应该写在ExampleTest文件中,你需要写函数来测试例子对象的方法(它们是我们期望的吗?)。它将失败,然后编写示例类和方法来通过此测试(参见:http://www.phpunit.de/manual/current/en/test-driven-development.html)。您的案例示例:
class ExampleTest extends PHPUnit_Framework_TestCase{
require_once('../classes/exampe.php');
protected $object;
protected function setUp() {
$this->object = new Example;
//we will use object to test it.
}
function testAddingMustReturnIntegerValue(){ //codes to check is it really integer? }
function testAddingNegativeValuesForbidden(){ //codes to check when we try to add negatives it shouldn't perform this action }
//some other thing that we are expecting from add and other methods
}
这是一个非常愚蠢的例子,但我希望你能明白我的意思。
p。s:我的母语不是英语,很抱歉我的英语不好。如果我不明白你的问题,这是没有帮助,请让我知道,以便我可以删除