小编Ste*_*ott的帖子

如何确定PHPUnit测试是否正在运行?

我目前有一个问题,我必须在遗留代码中解决,以使我们与PHP扩展的交互正常工作(Singleton测试问题).

因此,我不想在使用应用程序运行常规生产代码时执行此代码.因此,如果正在执行的代码作为测试的一部分执行,我需要检查常规PHP代码.

关于如何确定这个的任何建议?我想到了一个与测试文件本身存在相关的定义变量(我们不会将测试发送给客户),但是我们的开发人员需要Extension才能正常工作,而CI服务器需要运行测试.

是否建议在PHPUnit.xml文件中设置Global?其他想法?

phpunit

28
推荐指数
5
解决办法
8216
查看次数

@internal实际意味着什么以及如何使用它?

@internal在PHPDocs中使用时标记的含义是什么?它是如何工作的?我已阅读此标记的文档并获得此定义.

@internal标记用于表示关联的结构元素是此应用程序或库内部的元素.它也可以在长描述中用于插入仅适用于该软件开发人员的文本.

我得到了它的要点,但我不明白的是我将如何在项目中实际使用它?我已经阅读了这个例子,我的理解是标记为一个功能@internal意味着它意味着它被用作软件的一部分而不被外部的东西使用.例如,在PHP库中,如果函数被标记为@internal它不是库提供的公共API的一部分.

我的问题:

  • 我的理解是@internal正确的吗?如果没有,那么正确的用法是什么?
  • 如果我的理解正确的,为什么PhpStorm会删除我的@internal功能,暗示它们不打算被使用?我如何正确使用标记为@internal?的功能?

phpdoc phpstorm

10
推荐指数
1
解决办法
2858
查看次数

使用Mocks使用Jest和Typescript进行测试

我正在与Typescript和Jest一起尝试为我的Angular和Ionic应用程序测试某些组件,但是问题不仅仅限于Angular或Ionic。因此,我正在尝试使Jest的模拟功能起作用。

我只是在创建一个虚拟类,我想尝试模拟函数的响应以查看是否可以覆盖行为。

开玩笑

export class AClass {
    constructor() { }

    GetOne():any {
        return  1;
    }

    GetTwo():any {
        return 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

玩笑样张

import { AClass } from './jest-mock';

// const mockGet = jest.fn( () => { return 3; } );  // Tried this to return 3?
const mockGet = jest.fn();
jest.mock('./jest-mock', () => {
    return jest.fn().mockImplementation( () => {
        return { GetOne: mockGet };
    });
});

describe('Testing Jest Mock is working', () => {
    it('should support mocking out the component', …
Run Code Online (Sandbox Code Playgroud)

unit-testing typescript jest

8
推荐指数
1
解决办法
9241
查看次数

如何从命令行在 Google Chrome 中创建选项卡组

我使用脚本打开浏览器和一堆选项卡,以便当我不小心关闭浏览器时,后台仍然打开一个小窗口(垃圾邮件窗口等)。问题是,当我将 Google Chrome 设置为从中断处继续时,当我重新启动计算机或 Google Chrome 时,我只会打开一个带有选项卡的窗口,而不是固定的选项卡和选项卡组。

有没有办法从命令行创建选项卡组?

我尝试了几种方法来执行此操作,但我能找到的脚本只会在浏览器中打开选项卡,实际上不允许我创建选项卡组。

我尝试过使用:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" google.com mysite.com

这会将页面加载为选项卡,但我无法创建选项卡组。

我尝试过Python

python -m webbrowser google.com mysite.com

无论如何我看不到创建选项卡组。

tabs google-chrome

8
推荐指数
0
解决办法
1205
查看次数

用PHPUnit测试抽象类的方法

我有一个抽象类,其中包含常用方法,我希望测试,所以我不必在扩展此类的每个类中继续测试它们.

abstract class Class1 implements iClass1
{
    const VALUE = 'A';
    private $Return;    
    public function __construct($Field = NULL)
    {
        if( ! is_null($Field) )
            $this->SetField($Field);
    }
    public function GetField()
    {
        return $this->Return;
    }
    public function SetField($Field)
    {
        if (strlen($Field) != 3)
        throw new CLASS1_EXCEPTION('Field "' . $Field . '" must be 3 digits.');

    $this->Return = $FieldCode;
    }
    abstract function CalculateData();
}
Run Code Online (Sandbox Code Playgroud)

我想创建基本的测试用例,然后测试构造函数,GetField和其他函数,然后我的其他测试文件可以测试抽象函数.

我希望能够测试const没有改变,字段抛出异常等...

测试:

class TEST_CLASS1 extends PHPUnit_Framework_TestCase
{
    protected function setUp()
    {
        require_once('CLASS1.php');
    }
    public function testConstants()
    {
        $this->assertEquals(CLASS1, 'A'); …
Run Code Online (Sandbox Code Playgroud)

phpunit

7
推荐指数
1
解决办法
6597
查看次数

如何使 Angular Material 表具有响应性

我有一个包含许多列的简单表格,我希望在调整浏览器窗口大小时自动缩小列。在table-responsive与引导工作,但我在寻找一个角材质类似的东西。我试图避免有 2 个表定义,并且我不想在 CSS 中自己做这个。Angular Material 有没有标准的方法来解决这个问题?

<table class="mdl-data-table mdl-js-data-table mdl-shadow--2dp" flex>
    <thead>
        <th class="mdl-data-table__cell--non-numeric">Date</th>
        <th class="mdl-data-table__cell--non-numeric">Time</th>
        <th class="mdl-data-table__cell--non-numeric">Park</th>
        <th class="mdl-data-table__cell--non-numeric">Home Team</th>
        <th class="mdl-data-table__cell--non-numeric">Away Team</th>
        <th class="mdl-data-table__cell--non-numeric">Win/Loss</th>
    </thead>
    <tbody>
        <tr ng-repeat="game in games">
            <td class="mdl-data-table__cell--non-numeric">{{game.GameDate | SLS_Date}}</td>
            <td class="mdl-data-table__cell--non-numeric">{{game.GameTime | SLS_Time:'HH:mm' }}</td>
            <td class="mdl-data-table__cell--non-numeric">{{game.VenueName}}</td>
            <td class="mdl-data-table__cell--non-numeric">{{game.HomeTeamName}}</td>
            <td class="mdl-data-table__cell--non-numeric">{{game.AwayTeamName}}</td>
            <td class="mdl-data-table__cell--non-numeric">{{game.WinLoss}}</td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

请注意,我在这里使用了 Material Design Lite 表,因为 Angular Material 今天没有表。同样的问题,包括使用 flex 和网格。

我猜新的 Material 世界不喜欢表格,所以最好的选择是更改布局以不使用表格。

angularjs angular-material material-design-lite

7
推荐指数
1
解决办法
4万
查看次数

在 Angular 11 中扩展 Angular DatePipe 错误,在 Angular 10 中有效

最初,我对 DatePipe 进行了一个简单的扩展,以从我们的标准(YYYYMMDD 格式)转换日期值,以便 Angular 中的 DatePipe 可以使用它。

export class SlsDatePipe extends DatePipe implements PipeTransform {
    constructor(Locale:string) {
        super(Locale);
    }

    /**
     * Convert the data from the numeric YYYYMMDD to the Javascript date format
     * @param DateValue SLS Formatted number in the YYYYMMDD style
     * @param args Angular Date Pipe args to control the output format
     * @returns Text output following the Javascript date() formats
     */
    public transform(DateValue:number, args:string):string | null {
    
        const DateString:string = DateValue.toString();
        const Year:number  = parseInt(DateString.substr(0, …
Run Code Online (Sandbox Code Playgroud)

pipe angular angular11

7
推荐指数
1
解决办法
1836
查看次数

配置PHPUnit的文件名

我是PHPUnit的新用户,我将现有的测试(断言)转换为PHPUnit框架,以提供更好的测试环境和代码覆盖率.但是,我需要知道如何尝试让PHPUnit使用我们的测试代码结构.

我们的项目目录类似于以下内容:
Application1/
   CREDIT_CARD.class - CREDIT_CARD的类命名约定
   CREDIT_CARD.class.test - CREDIT_CARD.class的自动测试
   File.php - 应用程序文件
   File.php.test - File.php的自动测试
   File2.php
   File2.php.test - File2.php的自动化测试

Application2/
   ANOTHER_CLASS.class
   ANOTHER_CLASS.class.test
   DifferentFile.php - 应用程序文件
   DifferentFile.php.test - File.php

lib/
   UTIL/
      SHARED_CLASS.class的 自动化测试
      SHARED_CLASS.class.test
   VISUAL/
      VISUAL_TOOL.class
      VISUAL_TOOL.class.test

我需要知道如何配置PHPUnit测试,以便我可以在lib/UTIL/.test中运行测试(使用setUp()方法加载类文件然后是lib/VC / .test,由Application1和Application2测试跟随(如果成功).我看到提到了一个PHPUnit_xml文件和一个bootstrap文件,但我找不到一个参考模板来看看这些是否是我需要的.任何帮助,将不胜感激.

我知道文档是指文件名的test.php添加,但我希望不必更改我们的结构和命名约定,因为我希望能够运行混合的文件,直到它们全部转换过来到PHPUnit框架.更改名称将导致我们公司的程序更改和开发人员的培训,我正在努力避免.

在此先感谢您的任何帮助.

php configuration phpunit unit-testing

6
推荐指数
1
解决办法
1690
查看次数

PHP_CodeSniffer - 显示失败的嗅探

PHP_CodeSniffer中是否有设置显示失败的嗅探?我将输出与我们的编码标准进行比较,逐个使用很难破译哪个测试失败,看看我们可能想忽略哪个.

如果有一种简单的方法来显示故障嗅探,那么我可以更轻松,更快地完成配置.

php configuration codesniffer

6
推荐指数
1
解决办法
1217
查看次数

PHP Extended类是否也继承了接口?

这是一个简化开发的问题,也是一个最佳实践问题.

<?php
class FOO implements Iterator
{
    ....
}

class BAR extends FOO
{
    ....
}

class OTHER extends FOO implements Iterator
{
    ....
}
?>
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,BAR还有Iterator接口吗?如果是这样,每次无论如何定义界面(如OTHER)或将BAR定义视为最佳实践是否更好?

我简化了这个例子,因为我们正在使用FOO的抽象类,我们希望确保有Iterator支持,然后可以在BAR类中重写它以便在元素之间移动.我们希望强制为子类定义一些函数,但是想要继承其他方法,并且仍然使用基本迭代器,而不必在子类上定义接口.

php oop inheritance

6
推荐指数
1
解决办法
707
查看次数