当测试失败时,运行selenium测试的浏览器将关闭.这在尝试调试时无益.我知道我可以选择在失败的情况下进行屏幕截图,但如果没有完整的上下文,这将无济于事.浏览器仍然可用,我可以回击并检查发生了什么.
是否有一种方法可以保持浏览器打开,即使断言失败或找不到元素?
我的问题是,我如何连接phpunit的clausule中的约束?在虚拟示例中:
$test->expects ($this->once())
->method ('increaseValue')
->with ($this->greaterThan (0)
->will ($this->returnValue (null));
Run Code Online (Sandbox Code Playgroud)
方法increaseValue的参数必须大于0,但如果我需要评估此参数必须小于10.
我如何连接$this->lessThan(10)?
有什么是模拟以及如何使用它们的描述:http://www.phpunit.de/manual/current/en/test-doubles.html
但所有可能的方法,如不全面的解释$this->any(),$this->once(),$this->equalTo()等
所以我正在寻找Mock生成API
PS:是的,我知道我可以在消息来源中查看它,但我正在寻找一个在线API文档
假设我有一个动作:
function actionShowItem($id)
{
$item = Item::model()->findByPk($id);
$this->render("showitem",array('model' => $id));
}
Run Code Online (Sandbox Code Playgroud)
此操作的简单单元测试是什么,它将验证视图输出中的文本.它在zend框架中很容易,不使用硒.我们可以在zend中创建假的GET和POST.但我在Yii中没有找到相同的例子.请建议.
我正在为一个库编写单元测试,在从数据重构业务逻辑之后,我现在对如何测试逻辑有点困惑!
例如,我有一个非常复杂的过程,其中传递了一组数据,我将使用数据提供程序,因此我可以确保它适用于各种情况.
有了我将通过数据提供者传递的数据,我是否也应该通过预期的结果?或者应该在测试中计算出来.
如上所述,计算过程是一个非常复杂的过程,并不完全$a + $b.
PHPunit无法找到我的测试,但确实找到了我的XML配置.这是配置:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Symply Test Suite">
<directory>src/Symply/EventManager/Tests</directory>
</testsuite>
</testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
这是目录结构:
PHPunit在运行脚本时说"没有执行测试".我不知道为什么这不起作用,因为我在XML目录标签中指定了目录.
我正在创建一个PHP REST api,使用PHPUnit进行单元测试和集成测试.我希望将phinx集成到数据库迁移中(而不是自己构建迁移代码).
我实际上有两个问题:
我如何使用Phinx进行数据库设置?Phinx通常用作命令行工具,但我需要一些方法来调用我的单元测试类中的setup方法.
我将如何进行集成测试我编写的迁移类?我想要一些验证,在每次迁移步骤后,我的数据库处于某种预期状态(可能包括在每次迁移期间应该保持一致的一些样本数据)
我是新来使用嘲弄和混淆的术语alias和overload.任何人都可以向我解释何时使用哪个?
在我们的phpunit测试中加载Doctrine时,我们遇到内存泄漏问题
从Symfony的文档开始:http: //symfony.com/doc/2.7/cookbook/testing/doctrine.html我们编写了这个测试:
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class memoryleakTest extends KernelTestCase
{
private $em;
protected function setUp()
{
self::bootKernel();
$this->em = static::$kernel->getContainer()
->get('doctrine')
->getManager();
}
protected function tearDown()
{
parent::tearDown();
$this->em->close();
}
function testEEE1() {
}
function testEEE2() {
}
function testEEE3() {
}
function testEEE4() {
}
function testEEE5() {
}
function testEEE6() {
}
function testEEE7() {
}
function testEEE8() {
}
function testEEE9() {
}
function testEEE10() {
}
function testEEE11() {
}
function testEEE12() { …Run Code Online (Sandbox Code Playgroud) 我是PHPUnit中的新手,并重写我的老式单元测试以使用它.我认识到框架的附加价值,使测试更具可读性,更简单,生成报告,自动化...但我仍然对模拟/存根功能存在分歧.它们是否真的有用,因为我们可以在PHP7中使用匿名类?
例如,是:
$stub = $this->createMock(SomeClass::class);
$stub->method('doSomething')
->willReturn('foo');
Run Code Online (Sandbox Code Playgroud)
真的应该比以下更优雅/可读/简单:
$stub = new class extends SomeClass {
protected function doSomething() { return 'foo'; }
};
Run Code Online (Sandbox Code Playgroud)
在我看来,对于不了解框架的开发人员来说,第二个命题更具可读性和可访问性.
是否还有充分的理由使用此功能?
换句话说,我可以用PHPUnit的模拟/存根函数做些什么我不能使用匿名类吗?或者是偏好/用例问题?