我已经编写了服务MyService
和它的模拟版本– MyServiceMock
,用于在提供我的BE之前,提供并使用模拟服务的结果的单元测试。
我使用MyService
作为MyServiceMock
的别名,因此将来在BE准备就绪时,我将不必更改代码:
在我的服务模块中,我使用:
import { MyServiceMock as MyService } from './my-service/my-service-mock.service';
const providers: Array<Provider> = [
MyService,
...
与我的组件中的相同:
import { MyServiceMock as MyService } from './my-service/my-service-mock.service';
...
constructor(
myServce: myService,
...
并且在ng serve
和ng build
上工作正常...直到我提供了构建服务。浏览器MyService
未定义,发生运行时错误。但是请注意,当通过Angular ng serve
投放时,所有效果都很好。并且ng build
|中没有警告和错误。 ng build --prod
构建过程。
下面的解决方案很简单,但是我希望对此做出任何解释。
谢谢!
解决方案:
在服务模块中,我们按原样提供模拟服务,没有别名。而且我们仅在组件中使用别名:
import { MyServiceMock } from './my-service/my-service-mock.service';
const providers: Array<Provider> = [
MyServiceMock,
...