在进行Angular单元测试时,由于默认情况下测试环境不会加载.glsl文件,因此无法直接在测试中访问它们。以下是一种解决方法:
在Angular项目的根目录下创建一个名为"src/test.ts"的文件(如果不存在)。
在"src/test.ts"文件中添加以下代码:
declare const require: any;
require.extensions['.glsl'] = function (module: any, filename: any) {
module.exports = require('fs').readFileSync(filename, 'utf8');
};
import * as shaderCode from './shader.glsl';
例如,假设你的.glsl文件是"src/app/shader.glsl",你可以在测试文件中这样使用它:
import * as shaderCode from './app/shader.glsl';
import { ShaderService } from './app/shader.service';
describe('ShaderService', () => {
let service: ShaderService;
beforeEach(() => {
service = new ShaderService(shaderCode);
});
it('should create', () => {
expect(service).toBeTruthy();
});
});
这样,你就可以在Angular单元测试中访问和使用.glsl文件了。