通过UI调用测试依赖项

时间:2018-01-26 15:37:18

标签: php phpunit phpstorm

我有以下测试结构:

import { Component, OnInit } from '@angular/core';
//import * as $ from "jquery";
declare var $: any;


@Component({
 selector: 'app-menu',
 templateUrl: './menu.component.html',
 styleUrls: ['./menu.component.scss']
})
export class MenuComponent implements OnInit {

 constructor() {
 }
 ngOnInit() {

  $(document).ready(function(){
      $(".owl-carousel").owlCarousel();
  });

  $('#myDropdown').on('hide.bs.dropdown', function () {
      return false;
  });
}

closeNav() {
    document.getElementById("mySidenav").style.width = "0";
}
}

当我将其作为测试套件的一部分运行时,这很好用。

在PhpStorm中,如果我右键单击功能名称,我会得到选项"运行' testSameData'"当我点击它时它给了我:

  

此测试取决于" Tests \ testData"通过。

是否有(内置或插件)方式配置PhpStorm以自动运行测试的依赖关系,如果它被要求将其作为单独的函数运行?

1 个答案:

答案 0 :(得分:2)

@depends注释告诉phpunit测试只能在之前运行的测试中进行调整。

在您的情况下,您似乎需要的是数据提供者:https://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers

充当dataProvider的方法需要返回一个数组数组,如下所示:

public function myTestData() : array
{
    return [
        [10]
    ]
}

/**
 * @dataProvider myTestData
 */
public function testSameData($data) 
{
    // More tests using data
}

请注意,数据提供程序将对外部数组中的每个数组条目运行测试。这样,您可以使用不同的数据集多次运行一次测试。

可选地,这些数据集可以命名为:

public function myTestData() : array
{
    return [
        'Ten' => [10],
        'Five' => [5],
    ]
}

编辑:注意我已经更改了数据提供者的名称:如果它以test开头,phpunit会将其视为一个测试用例,并且可能会警告缺少断言。