проблемы, чтобы проверить методы моих занятий - PullRequest
0 голосов
/ 28 января 2020

Я пытался протестировать свои классы с помощью Jest, но безуспешно.

В этом примере у меня есть метод с параметром, когда я пробую его в playgroung, он отвечает удовлетворительно, но в тестах это доставляя мне проблемы, я видел несколько примеров, но они не очень помогли мне. Также нет документации или примеров с библиотекой.

@Resolver()
export class ProductoResolver {

  private productoServices: ProductoContract
  constructor(productoImpl: ProductoContract = new ProductoServices()){ this.productoServices  = productoImpl; }



  @Query(() => Producto, { description : 'Obtiene un producto especifico' })
  async getProductoById ( @Arg("productoId", { nullable: false }) productoId?: number ) {
    try {
      const data = await this.productoServices.obtenerProductoEspecifico(productoId);
      return data;
    } catch (err) {
      logger.error(err);
      throw new Error(err);
    }
  }
}

У меня есть n-слойное приложение со слоями: приложение (разрешение классов), домен и архитектура.

Я пробовал с эти два пути:

    it('tipo 1', async ()=> {

        schema = await buildSchema({
            resolvers: [ProductoResolver],
            validate: true,
        });

        const query = `          
        query{
            getProductoById(productoId: 500){
              codigo
              descripcion
              monedaoperacion
            }
          }`;

        const result = await graphql(schema, query);
        console.log('result: ', result);
        expect(result).toBeDefined();

    });

    it('tipo 2 ', async () => {
        const functions = new ProductoResolver();
        const data = await functions.getProductoById(500);
        console.log('tipo 2: ',data);
        expect(data).toBeDefined();

    });

и у меня есть эти ошибки.

error jest

Не могли бы вы помочь мне?

1 Ответ

1 голос
/ 29 января 2020

Вам нужно создать соединение БД перед запуском теста.

beforeAll(async () => {
   await createConnection()
})
...