问题描述
我正在进行第一次单元测试。为了记录在案,我已经编写了一些功能测试,它们可以正常工作。
这里有一个小细节,我的表度量在TimescaleDB(Postgres)上是超表的,所以我无法使用迁移/种子。
无论如何,因为它是一个单元测试,所以在这里我不需要数据库连接。
这是我用于功能测试的工作配置:
<PHP>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="DB_CONNECTION" value="sqlite"/>
<server name="DB_DATABASE" value=":memory:"/>
<server name="MAIL_DRIVER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
<env name="TELEScopE_ENABLED" value="false"/>
</PHP>
这是我的代码:
<?PHP
namespace Tests\Unit;
use App\Measure;
use Carbon\Carbon;
use PHPUnit\Framework\TestCase;
class MeasureTest extends TestCase
{
public function setUp() : void
{
parent::setUp();
}
/** @test * */
public function is_new_timestamp()
{
$timestep = "10";
$targetTimestamp = "30";
$ts = Carbon::create(2020,04,16,13,00,null);
$m1 = new Measure(['time' => $ts]);
$m2 = new Measure(['time' => (clone $ts)->addMinutes($timestep)]);
$m3 = new Measure(['time' => (clone $ts)->addMinutes(2 * $timestep)]);
$m4 = new Measure(['time' => (clone $ts)->addMinutes(3 * $timestep)]);
$m5 = new Measure(['time' => (clone $ts)->addMinutes(4 * $timestep)]);
$m6 = new Measure(['time' => (clone $ts)->addMinutes(5 * $timestep)]);
assertTrue(Measure::isNextTimestamp($m1->time,$targetTimestamp));
assertFalse(Measure::isNextTimestamp($m2->time,$targetTimestamp));
assertFalse(Measure::isNextTimestamp($m3->time,$targetTimestamp));
assertTrue(Measure::isNextTimestamp($m4->time,$targetTimestamp));
assertFalse(Measure::isNextTimestamp($m5->time,$targetTimestamp));
assertFalse(Measure::isNextTimestamp($m6->time,$targetTimestamp));
}
我应该如何消除该错误?我在哪里调用connection()?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)