Angular 角度:多个规格的虚拟测试数据应该放在哪里?

Angular 角度:多个规格的虚拟测试数据应该放在哪里?,angular,Angular,鉴于angular spec文件应与普通文件位于同一文件夹中,鉴于我想在一些不同的spec之间重用一些虚拟数据,我应该将其放在哪里 例如: a a.service.ts (I want to have some dummy test data returned by this service) a.service.spec.ts (and use it in this test) b b.component.spec.ts (and also use it in this test)

鉴于angular spec文件应与普通文件位于同一文件夹中,鉴于我想在一些不同的spec之间重用一些虚拟数据,我应该将其放在哪里

例如:

a
  a.service.ts (I want to have some dummy test data returned by this service)
  a.service.spec.ts (and use it in this test)
b
  b.component.spec.ts (and also use it in this test)
c
  c.component.spec.ts (and this one too)
...
我可以在每个规范文件中定义这些虚拟测试数据,但这将导致大量重复


我不确定是否有一种好的、正确的方法来定义此类数据。

我只需要创建一个
ts
文件,并将其作为键值返回,同时将JSON测试数据作为值

export const mockJSON = {
   testkey1: "{\"name\": \"Company List\"}
}

然后,您应该能够将其作为代码中其他任何地方的导入获取。

您不应该从实际服务返回虚拟测试数据。您应该这样做,即使是在模拟的情况下,我是否应该在每种情况下都复制模拟,即使它们都相等?问题在于找到一种正确的方法来定义它们并在不同的规范文件之间共享。通常模拟是特定于测试的,因为您应该只模拟测试实际使用的功能,并且模拟应该只返回测试实际需要的数据。因此,通常它们根本无法共享。此外,我发现将模拟定义在与测试相同的文件中更为方便。@Saita我认为您应该阅读文档,以了解什么会发生,祝您好运。注意:模拟数据可能包括测试数据,并且可能更适合另一个文件。我将把这个文件放在哪里?我会称之为“something.spec.ts”以便angular知道如何从我的生产代码中删除它吗?angular只编译实际使用的文件。如果未在应用程序中导入此文件,Angular在编译应用程序时将不包含此文件。另见。