我可以让Firefox不在链接上显示丑陋的虚线焦点轮廓:
a:focus {
outline: none;
}
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能为<button>标签做这个呢?当我这样做:
button:focus {
outline: none;
}
Run Code Online (Sandbox Code Playgroud)
单击按钮时,按钮仍然具有点状焦点轮廓.
(是的,我知道这是一个可用性问题,但我想提供适合设计的焦点提示,而不是丑陋的灰点)
我认为下面的代码应该可以工作,但它没有(编辑:现在适用于PHP 5.5+):
if (!empty($r->getError()))
Run Code Online (Sandbox Code Playgroud)
其中getError()无非是:
public function getError()
{
return $this->error;
}
Run Code Online (Sandbox Code Playgroud)
但我最终得到了这个错误:
不能在写上下文中使用方法返回值
这是什么意思?这不仅仅是一个阅读?
我有一个PHPUnit模拟对象,'return value'无论它的参数是什么都返回:
// From inside a test...
$mock = $this->getMock('myObject', 'methodToMock');
$mock->expects($this->any))
->method('methodToMock')
->will($this->returnValue('return value'));
Run Code Online (Sandbox Code Playgroud)
我想要做的是根据传递给mock方法的参数返回一个不同的值.我尝试过类似的东西:
$mock = $this->getMock('myObject', 'methodToMock');
// methodToMock('one')
$mock->expects($this->any))
->method('methodToMock')
->with($this->equalTo('one'))
->will($this->returnValue('method called with argument "one"'));
// methodToMock('two')
$mock->expects($this->any))
->method('methodToMock')
->with($this->equalTo('two'))
->will($this->returnValue('method called with argument "two"'));
Run Code Online (Sandbox Code Playgroud)
但是如果没有使用参数调用mock,这会导致PHPUnit抱怨'two',所以我假设定义methodToMock('two')覆盖了第一个的定义.
所以我的问题是:有没有办法让PHPUnit模拟对象根据其参数返回不同的值?如果是这样,怎么样?
我正在尝试做这样的事情:
<div v-for="r in rentals">
<a bind-href="'/job/'r.id"> {{ r.job_title }} </a>
</div>
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何将值添加r.id到href属性的末尾,以便我可以进行API调用.有什么建议?
我的行为有以下设置:
get1: ({commit}) => {
//things
this.get2(); //this is my question!
},
get2: ({commit}) => {
//things
},
Run Code Online (Sandbox Code Playgroud)
我希望能够从另一个内部调用一个动作,所以在这个例子中我希望能够get2()从内部调用get1().这是可能的,如果可以的话,我该怎么做?
同事已经在我们的库中添加了几次assert命令,在那里我将使用if语句并抛出异常.(在此之前我从未听说过断言.)以下是他如何使用它的一个例子:
assert('isset($this->records); /* Records must be set before this is called. */');
Run Code Online (Sandbox Code Playgroud)
我会做的:
if (!isset($this->records)) {
throw new Exception('Records must be set before this is called');
}
Run Code Online (Sandbox Code Playgroud)
通过在assert上阅读PHP文档,看起来建议您确保assert处于活动状态并在使用assert之前添加处理程序.我找不到他这样做的地方.
所以,我的问题是,鉴于上述情况,使用断言是一个好主意,我应该更频繁地使用它而不是if和例外吗?
另外,我们计划在各种项目和服务器上使用这些库,包括我们甚至可能不参与的项目(库是开源的).这在使用assert时有什么不同吗?
为了提高我的代码质量,我决定尝试学习如何使用单元测试而不是我最平庸的测试解决方案来测试我的代码.
我决定使用composer安装PHPUnit,用于个人库,允许我实现常见的数据库功能.起初我没有PHPUnit的配置文件,当我运行如下命令:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个终端命令,所以我没有包含.php扩展名.上面提到的GeneralStringFunctionsTest实际上是一个GeneralStringFunctionsTest.php文件.
输出是我的预期:
时间:31毫秒,内存:2.75Mb
好的(1个测试,1个断言)
然后,我尝试使用配置文件自动加载测试套件,而不必每次都手动输入文件.我创建了一个phpunit.xml在我的根目录中调用的文件,并在文件中输入以下内容:http://pastebin.com/0j0L4WBD:
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
现在,当我运行命令时:
phpunit
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
Sebastian Bergmann和贡献者的PHPUnit 4.5.0.
配置从/Users/muyiwa/Projects/DatabaseHelper/phpunit.xml中读取
时间:16毫秒,内存:1.50Mb
没有执行测试!
如果它有用,我的目录结构如下:
src - 顶级目录(包含我的所有源代码)
测试 - 顶级目录(包含我的所有测试,结构与我的src文件夹相同)
供应商 - Composer第三方文件
我还有作曲家json和锁定文件,以及顶层的phpunit xml文件作为文件.
phpunit.xml为tests/GeneralStringFunctionsphpunit.xml为./testsphpunit.xml文件移动到tests目录,然后将目录更改为./而不是tests.phpunit.xml以将"测试"指定为显式后缀.我在我正在进行的项目中使用ChartJS,并且我需要为条形图中的每个条形图使用不同的颜色.
以下是条形图数据集的示例:
var barChartData = {
labels: ["001", "002", "003", "004", "005", "006", "007"],
datasets: [{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data: [20, 59, 80, 81, 56, 55, 40]
}]
};
Run Code Online (Sandbox Code Playgroud)
有没有办法以不同方式绘制每个栏?
我有一个动态的观点:
<div id="myview">
<div :is="currentComponent"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
与关联的Vue实例:
new Vue ({
data: function () {
return {
currentComponent: 'myComponent',
}
},
}).$mount('#myview');
Run Code Online (Sandbox Code Playgroud)
这允许我动态地更改我的组件.
就我而言,我有三个不同的部分组成:myComponent,myComponent1,和myComponent2.我在他们之间切换如下:
Vue.component('myComponent', {
template: "<button @click=\"$parent.currentComponent = 'myComponent1'\"></button>"
}
Run Code Online (Sandbox Code Playgroud)
现在,我想把道具传递给myComponent1.
当我将组件类型更改为时,如何传递这些道具myComponent1?
我有一个摘要页面和一个详细信息子页面.所有路线都使用vue-router(v 0.7.x)使用程序化导航实现,如下所示:
this.$router.go({ path: "/link/to/page" })
Run Code Online (Sandbox Code Playgroud)
但是,当我从摘要页面路由到子页面时,我需要在新选项卡中打开子页面,就像添加_target="blank"到<a>标签一样.
有没有办法做到这一点?
php ×4
vue.js ×4
javascript ×3
phpunit ×2
unit-testing ×2
vue-router ×2
assert ×1
chart.js ×1
css ×1
firefox ×1
mocking ×1
vuejs2 ×1
vuex ×1