我想得到下一个日期从一个给定的字符串运行cron,如Cron Format with secondsparameter(不完全等于cron格式).
我的代码:
$cron_format = explode(" ", "00 00 00 01 * *"); // <second> <minute> <hour> <day> <month> <week_day>
$date_diff = explode(" ", "s i H d m w"); // php Date @link http://php.net/manual/en/function.date.php
$format = [];
foreach( $date_diff as $key=>$value) {
$format[$value] = $cron_format[$key] !== "*" ? date($value, strtotime($cron_format[$key])) : date($value);
}
$spf = sprintf(
"%s-%s-%s %s:%s:%s",
date("Y"), $format["m"], $format["d"], $format["H"], $format["i"], $format["s"]
);
$date = DateTime::createFromFormat("Y-m-d H:i:s", $spf);
// …Run Code Online (Sandbox Code Playgroud) 问题是我嘲笑的依赖有一个expects()方法.这个类依赖于我正在测试的类.
setUp()方法
$this->test = $this->getMockBuilder(Request::class)->disableOriginalConstructor()
->getMock();
Run Code Online (Sandbox Code Playgroud)
所以当我写我的测试
$this->test->expects($this->once())->method('otherMethod')
->willReturn(0);
Run Code Online (Sandbox Code Playgroud)
这会产生错误:
无法重新声明Mock_Test_f21c25ee :: expected()in ...
我怎么解决这个问题?
编辑:
我尝试了建议的解决方案与setMethodsExcept()我现在有一个不同的错误消息.我也在使用PHPunit 7.5
Mock_Test_fa1cb6c5 :: expected(PHPUnit\Framework\MockObject\Matcher\Invocation $ matcher)的声明应该与App\Services\Api\Test :: expected()兼容
注意:忘了提到我正在使用具有自己的TestBase类的Laravel 5.5
Edit2:在我尝试使用默认的PHPUnit测试用例之后,我仍然得到与上面相同的错误消息.(必须与错误兼容)
当我运行yarn run watch(在我的 laravel 项目根目录中)时,它编译时没有错误。但是,如果我随后编辑文件,它会在终端中为文件夹.ts中的每个文件显示错误resources。文件中的打字稿.vue没有问题。另请注意,我所做的每个更改似乎也已编译,所以换句话说,它有效......但错误消息保留在控制台中。
我对每个文件收到的错误.ts是:
TS2307: Cannot find module '!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js' or its corresponding type declarations.
Run Code Online (Sandbox Code Playgroud)
该文件确实存在于我的node_module文件夹中。
我用谷歌搜索了它,我发现唯一与我的问题远程接近的是这个链接: https: //github.com/vuejs/vue-loader/issues/634
但那里建议的解决方案/解决方法都不适合我。
这是我的 tsconfig
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"experimentalDecorators": true,
},
"include": [
"resources/js/**/*"
],
"exclude": [
"vendor",
]
}
Run Code Online (Sandbox Code Playgroud)
我怀疑这要么是配置问题,要么是ts-loader或 的版本问题vue-loader。
"ts-loader": "^8.2.0",
"typescript": "^4.3.2"
"vue-loader": "^15.7.0",
Run Code Online (Sandbox Code Playgroud)
网络包配置:
module: {
rules: [
{
test: /\.tsx?$/,
loader: "ts-loader",
options: {appendTsSuffixTo: …Run Code Online (Sandbox Code Playgroud)