我正在研究如何最好地测试我们使用 Laravel 作为后端(REST API)和 Ember.js 作为前端开发的应用程序。
我目前正在使用 Behat 为 API 运行验收测试。我想使用 Cucumber.js 来为项目的 Ember 端创建和测试功能。
我已经有一个专门用于在 API 中运行 Behat 功能的“验收”环境。
我可以从 JS 端的“全栈”测试中看到的问题是如何清理和重新植入数据库?
我的想法是添加仅用于测试目的的路线,例如:
if ( App::environment() == 'acceptance' ) {
Route::get('/test/reseed', function() {
// delete db if exists
Artisan::call('migrate');
// call other migrations...
Artisan::call('db:seed');
return "ok";
});
}
这样,只有验收环境才能访问该调用,它应该是为 Cucumber.js 和 Ember 准备好运行测试(可能通过 Node.js)的 API 端所需要的一切
我在这里询问是否有任何我可能错过的明显内容,是否有其他方法可以做到这一点。
我希望能够纯粹从 JS 端进行测试的原因是我们可以独立地测试系统。我知道我可以使用 Behat、Mink 和 PhantomJS 来测试完整的应用程序。