PHPUnit-断言失败,但我想继续测试 [英] PHPUnit - assertion failed but I want to continue testing

查看:76
本文介绍了PHPUnit-断言失败,但我想继续测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

->assertTrue(false);
->assertTrue(true);

第一个断言失败,执行被停止.但是,我想继续进一步的代码片段.

First assertion was failed and execution was stopped. But I want to continue the further snippet of code.

PHPUnit是否有可能

Is there possible in PHPUnit

推荐答案

您可以只存储最后的失败,例如

You could just store up the failures for the end, say with a

$passing = true;
if (! false) { $passing = false; }
if (! true) { $passing = false; }
$this->assertTrue($passing);

但是我强烈不鼓励这种形式的测试.我已经写过这样的测试,并且它们成倍地失控,更糟糕的是,由于难以发现的原因,您开始遇到奇怪的失败.

but I highly discourage this form of testing. I have written tests like this, and they exponentially get out of hand, and worse, you start to get weird failures for hard-to-find reasons.

此外,比我聪明的人同意,测试不应包含任何条件(如果/else,try/catch),因为每个条件都会增加测试的复杂性.如果有条件的话,也许应该仔细检查测试和SUT或被测系统",以寻求简化的方法.

Additionally, smarter people than me agree, tests should not have any conditionals (if/else, try/catch), because each conditional adds significant complexity to the test. If a conditional is needed, perhaps both the test and the SUT, or System Under Test, should be looked at very carefully, for ways to make it simpler.

更好的方法是将其更改为两个测试,如果它们共享设置的重要部分,则将这两个测试移到新的测试类中,并在Setup()方法中执行共享设置

A much better way would be to change it to be two tests, and if they share a significant portion of the setup, then move those two tests into a new test class, with the shared setup performed in the Setup() method.

这篇关于PHPUnit-断言失败,但我想继续测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆