如何用我为测试创建的模拟库覆盖Angular中的库(例如路径)?

如何用我为测试创建的模拟库覆盖Angular中的库(例如路径)?,angular,testing,mocking,testbed,Angular,Testing,Mocking,Testbed,我正在开发一个角度应用程序,该应用程序在Electron中运行。然而,我们使用cypress进行E2E测试,因此我模拟了电子的所有依赖性。因此,我们希望mock仅在测试时使用(以允许在web中编译应用程序),而不是在生产代码中使用。以前我在prod代码中创建了mock,但是现在我必须从那里删除它们。例如,我有一个“path”库,一旦我运行test命令,它就必须被模拟库替换。你能帮我解决这个问题吗?你看过angular.json配置吗?您可以为开发、生产和测试指定不同的配置。您应该能够替换一些导入

我正在开发一个角度应用程序,该应用程序在Electron中运行。然而,我们使用cypress进行E2E测试,因此我模拟了电子的所有依赖性。因此,我们希望mock仅在测试时使用(以允许在web中编译应用程序),而不是在生产代码中使用。以前我在prod代码中创建了mock,但是现在我必须从那里删除它们。例如,我有一个“path”库,一旦我运行test命令,它就必须被模拟库替换。你能帮我解决这个问题吗?

你看过angular.json配置吗?您可以为开发、生产和测试指定不同的配置。您应该能够替换一些导入路径。模拟库显然非常深入,因为这些库是nodeJs的原生库。因此,我认为更好的方法是模拟文件/服务本身,并用angular.json上模拟的文件替换原始文件。“fileReplacements”:[{“replace”:“myService”,“with”:“myservicecock”}],但是,到目前为止,它没有给出任何结果。知道为什么吗?fileReplacements需要的是文件路径,而不是类名。您使用了文件路径吗?我发现替换库非常复杂,我决定用模拟服务替换使用这些库的服务。这就是我决定使用文件替换的原因。但是,即使路径正确,它也不会进行替换。“fileReplacements”:[{“replace”:“path1/project upload factory.service.ts”,“with”:“path1/project upload factory.service.mock.ts”}],