метод сценария рефакторинг - PullRequest
0 голосов
/ 28 ноября 2018

Я работаю в приложении Angular.С жасмином.И у меня есть эти два метода:

it('should create status options when no list value options are provided', () => {
        optionService.options = [
            {
                value: caseStatusEnum.submitted.toString(),
                selected: false,
            },
            {
                value: caseStatusEnum.closed.toString(),
                selected: true,
            },
        ] as OptionModel[];

        const result = service.createStatusOptions([], {});
        expect(result.length).toBe(2);
        expect(result).toEqual([{ value: '103', selected: true }, { value: '105', selected: false }]);
        // tslint:disable-next-line:no-commented-code
        //  const response = [{ mock: 'mock' } as any];
        // expect(spy).toBe(result);
    });

    it('should create status options when there ar list value options are provided', () => {
        optionService.options = [
            {
                value: caseStatusEnum.submitted.toString(),
                selected: false,
            },
            {
                value: caseStatusEnum.closed.toString(),
                selected: true,
            },
        ] as OptionModel[];

        const result = service.createStatusOptions([{ value: '103', selected: false }, { value: '104_103', selected: false }, ], {});

         expect(result.length).toBe(4);
         // expect(result).toEqual([{ value: '104', selected: false,  }, { value: '105', selected: false, },  ]);
    });

Но я хочу изменить этот кусок кода:

 optionService.options = [
            {
                value: caseStatusEnum.submitted.toString(),
                selected: false,
            },
            {
                value: caseStatusEnum.closed.toString(),
                selected: true,
            },
        ] as OptionModel[];

Потому что это двойной код.

Я работаю в Visual Studio Code.

Но как это сделать?

Спасибо.

1 Ответ

0 голосов
/ 28 ноября 2018

Вы должны иметь возможность создать общую переменную для обоих из них, чтобы они ссылались

    const enumOptions: any = [
        {
            value: caseStatusEnum.submitted.toString(),
            selected: false,
        },
        {
            value: caseStatusEnum.closed.toString(),
            selected: true,
        }
    ];

    it('should create status options when no list value options are provided', () => {
        optionService.options = this.enumOptions as OptionModel[];

        const result = service.createStatusOptions([], {});
        expect(result.length).toBe(2);
        expect(result).toEqual([{ value: '103', selected: true }, { value: '105', selected: false }]);
        // tslint:disable-next-line:no-commented-code
        //  const response = [{ mock: 'mock' } as any];
        // expect(spy).toBe(result);
    });

    it('should create status options when there ar list value options are provided', () => {
        optionService.options = this.enumOptions as OptionModel[];

        const result = service.createStatusOptions([{ value: '103', selected: false }, { value: '104_103', selected: false }, ], {});

         expect(result.length).toBe(4);
         // expect(result).toEqual([{ value: '104', selected: false,  }, { value: '105', selected: false, },  ]);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...