草庐IT

unit-testing

全部标签

php - 使用 symfony2.3 进行单元测试验证器约束

我想使用约束制作一个测试单元,但在运行测试时出现此错误这是我的不同类和运行phpunit后的获取错误useSymfony\Component\Validator\Constraint;/***@Annotation*/classAge18extendsConstraint{ public$message='Vousdevezavoir18ans.';}useSymfony\Component\Validator\Constraint;useSymfony\Component\Validator\ConstraintValidator;classAge18Validatorextends

php - 使用 PHPUnit 在 doctrine2 中模拟 findOneBy"field"

如果我模拟存储库方法find我会得到预期的结果,但如果我调用findBy、findOneBy、findOneById中的任何一个,我总是得到null。代码示例:$mock->expects($this->once())->method('getId')->will($this->returnValue(1));$mockRepository->expects($this->any())->method('findBy')//ifhereIuse'find'worksforallothercasesalwaysnull->will($this->returnValue($mock));发

php - 如何在不测试 protected 方法时达到 100% 的代码覆盖率

这是否有意义:由于我们通常只想测试(类的)API而不是我们通常不需要/不想测试protected方法的实现细节。由于我们不希望仅仅因为我们不测试实现细节而降低代码覆盖率,因此我们应该为那些protected方法使用@codeCoverageIgnore注释。 最佳答案 通过公共(public)API测试您的私有(private)和protected方法。“不要测试你的私有(private)方法”的规则并不意味着你不应该测试私有(private)方法提供的行为。这意味着您应该通过公共(public)方法测试该行为。如果这样做,您将在以

php - 如何对构造函数接受一些参数的类的方法进行单元测试?

我有一类这样的表单:classA{publicfunction__constructor(classBb,classCc){//}publicfunctiongetSum(var1,var2){returnvar1+var2;}}我的测试用例类是这样的:useA;classATestextendsPHPUnit_Framework_TestCase{publicfunctiontestGetSum{$a=newA();$this->assertEquals(3,$a->getSum(1,2));}}但是当我运行phpunit时,它会抛出一些错误,例如:在第5行的/../A.php中调用

php - Laravel 黄昏 : how to use in-memory DB for testing

我一直在尝试的是在使用LaravelDusk进行测试时使用内存数据库。这里我们有一个文件,.env.dusk.local,具有以下值。DB_CONNECTION=sqliteDB_DATABASE=:memory:这是浏览器测试文件的片段。classViewOrderTestextendsDuskTestCase{useDatabaseMigrations;/**@test*/publicfunctionuser_can_view_their_order(){$order=factory(Order::class)->create();$this->browse(function(Br

php - 如何通过 phpunit.xml 从测试套件中包含/排除某些组

我想从测试套件中排除或包含某些测试。我想通过注释/组对此进行一些控制,而不是在phpunit.xml中命名特定文件或文件夹。我试过这样的事情,但它似乎忽略了和/或UnitIntegration/first-roundIntegration/first-round我不想为了适应这种情况而将测试移动到不同的文件夹,我也不想从CLI多次调用phpunit,我希望我可以通过xml配置实现所需的结果。 最佳答案 好的,首先应该看文档https://phpunit.de/manual/current/en/appendixes.configur

PHPUnit 文件命名约定

我刚刚开始在一些现有代码上试用phpunit。我们使用的命名约定是MyClass类应该在MyClass.class.php中。PHPUnit似乎要求该文件应称为MyClass.php。有什么办法解决这个问题吗?我在尝试生成骨架测试类时注意到它:phpunit--skeleton-testMyClass.classPHPUnit3.3.4bySebastianBergmann.Couldnotfindclass"MyClass.class"in"/home/jd/skeleton/classes/MyClass.class.php".Fatalerror:Calltoamemberfun

php - 石灰与 phpunit

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion令人惊讶的是,我在网络上的任何地方都没有看到这个问题的答案。用lime编写的单元测试看起来如此比带有所有额外样板代码的PHPUnit更容易编写。是否有明确的理由(除了“PHPUnit是事实上的标准”之外)选择其中一个而不是另一个?

php - localhost/test.php 也可以在 localhost/test/下访问

我的apache-conf有什么问题,为什么在没有扩展名的文件夹路径下也可以访问该文件?我没有设置任何重写规则,也没有.htaccess文件。这是默认的osxapache安装。 最佳答案 Apache的contentnegotiation有一个名为MultiViews的选项这使得没有扩展名的文件可用:TheeffectofMultiViewsisasfollows:iftheserverreceivesarequestfor/some/dir/foo,if/some/dirhasMultiViewsenabled,and/some/

php - cakephp Controller 测试 - 如何测试需要授权的操作?

标题几乎说明了一切。我想测试例如UsersController::admin_index()操作,但用户需要获得访问此位置的授权,因此当我运行测试时,它会将我发送到登录页面,甚至当我手动登录时,没有进行任何测试。那么如何在不编辑实际授权码的情况下强制蛋糕跳过授权呢?顺便说一句,如果有帮助,我的testAdminIndex()代码如下所示:functiontestAdminIndex(){$result=$this->testAction('/admin/users/index');debug($result);} 最佳答案 这里有一