我们目前在我们的 Ruby on Rails 应用程序中运行AngularJS的Jasmine测试。有了这个,我们使用VCR生成带有假数据的 API JSON 文件。
是否可以将这些文件嵌入到我们的 JavaScript 单元测试中?
- 我们不希望对这些文件进行 Ajax 调用(性能)
- 我们尽量避免将其放入,
assets
因为它应该被排除在生产代码中。
我们当前的结构如下所示:
规范/controllerSpec.js
scope.user.handleUserLoaded({
"is_logged_in": true,
"preferred_name": "Christian"
});
expect(scope.user.isAuthenticated()).toBeTruthy();
固定装置/fake_data/user.json
{
"is_logged_in": true,
"preferred_name": "Christian"
}
与其做这种重复,我们更愿意在 JavaScript 中包含某种类型的内容:
scope.user.handleUserLoaded(<% include "fixtures/fake_data/user.json" %>);
expect(scope.user.isAuthenticated()).toBeTruthy();
最好的方法是什么?
我们绝对可以移动文件、使用.js.erb
文件或尝试不同的方法。