ν
μ€νΈ μ½λμ μ€μμ±μ 체κ°νκ³ μμμ§λ§, λ°μλ€λ μ΄μ λ‘ μ λλ‘ μμ±νμ§ λͺ»νλ κ²½μ°κ° λ§μλ€.
μ κ· κΈ°λ₯μ΄ μ½ν μμμλ‘ ν
μ€νΈ μ½λμ νμμ±μ λ 컀μ§λλ°λ, νμ€μμ λ²κ·Έλ°°μ μ μ λ΄κ° μ§μ λͺ¨λ μΌμ΄μ€λ₯Ό μ‘°ν©ν΄ λ³΄κ³ μ΄μλ₯Ό μ‘μλ΄λ κ±Έ λ°λ³΅νμλ€. λ§μ½ μ΄κΈ°μ λͺ κ° μμ±νλλΌλ, κΈ°λ₯μ΄ μ
λ°μ΄νΈλ λλ§λ€ ν
μ€νΈ μ½λλ ν¨κ» μ μ§λ³΄μν΄μΌ νλλ°, κ·Έ κ³Όμ μ λμΉλ€ 보면 ν
μ€νΈλ κΈμΈ μ€μ λμκ³Ό μ΄κΈλ μνκ° λλ κ²½μ°κ° νλ€νλ€. κ²°κ΅ λ¬΄μλ―Έν ν
μ€νΈλ§ μμ΄κ² λκ³ , ν
μ€νΈ μ체λ₯Ό μμ±νμ§ μλ νλ¦μΌλ‘ μ΄μ΄μ§κ³€ νλλ°, AIκ° λ°μ ν μ§κΈ, ν
μ€νΈ μ½λ μμ±μ νμμ΄μ§ μμκΉ? νλ μκ°μ΄ λ€μλ€. μμ μ 쑰건 λΆκΈ°λ λ λλ§ μΌμ΄μ€κ° μλ λ§μμ, ν
μ€νΈ μ½λκ° μμμΌλ©΄ ν¨μ¬ μμνμ ν
λ°... μΆμλ μ»΄ν¬λνΈ νΈλ¦¬λ₯Ό μ΄λ²μ ν΅μ§Έλ‘ 컀μμκ² λ겨 ν
μ€νΈ μ½λλ₯Ό μμ±ν΄λ³΄κ² νλ€.
ν΄λΉ μ»΄ν¬λνΈλ μλμ κ°μ λ€μν 쑰건 μ‘°ν©μ λ°λΌ λ λλ§ κ²°κ³Όκ° λ¬λΌμ§λ ꡬ쑰μλ€.
- μ λ΅ μ μ¨κΉ μ¬λΆ
- μ λ΅μ μμλ₯Ό κ³ λ €νμ§ μλ μ΅μ
- μ½κΈ° λͺ¨λ
- μ λ΅ μ¨κΈ°κΈ° μ€μ
- νμ λ΅μμ΄ μ λ΅ μλ³΄λ€ λ§μ κ²½μ°
- ....
μλλ 컀μκ° μμ±ν ν μ€νΈ μ€ μΌλΆλ€.
it('hideCorrectAnswerκ° trueμΌ λ μ λ΅μ΄ νμλμ§ μμμΌ νλ€', () => {
const props = {
...defaultProps,
editor: {
options: { hideCorrectAnswer: true },
},
};
render(
<I18nProvider i18n={i18n}>
<ResultComponent {...props} />
</I18nProvider>,
);
const orderedResult = screen.getByTestId('ordered-result');
expect(orderedResult).not.toHaveTextContent(/Correct:/);
});
κΈ°λ³Έ λ λλ§μ΄λ 쑰건 λΆκΈ° κ²°κ³Όλ₯Ό μΌμΌμ΄ UIμμ νμΈνμ§ μμλ ν
μ€νΈλ‘ λΉ λ₯΄κ² κ²μ¦ν μ μμλ€.
λ¬Όλ‘ μ»€μκ° μμ±ν μ½λκ° λ€ννλ μλ²½νμ§ μμλ€. μλ₯Ό λ€μ΄ descendantsλ‘ λ΄λ €μ€λ μ λ΅ μμ μ λ΅ λ°°μ΄ κΈΈμ΄κ° λ€λ₯Ό λ 보μ¬μ€μΌ νλ νλλ λ¨μν κΈΈμ΄ λΉκ΅κ° μλλΌ λλ©μΈ μ μ±
μ λ°λΌ νλ¨ν΄μΌ νκΈ° λλ¬Έμ, ν΄λΉ ν
μ€νΈ λ‘μ§μ μ§μ μμ ν΄μ€μΌ νλ€. λν ν
μ€νΈλ₯Ό μμ±νλ €λ©΄ mock μ λ¦¬κ° λ¨Όμ νμνλλ°, μ»΄ν¬λνΈ λ΄λΆμλ μ¬λ¬ νμ μ»΄ν¬λνΈκ° ν¬ν¨λμ΄ μμκ³ , μ 체 ꡬ쑰λ₯Ό κ·Έλλ‘ ν
μ€νΈμ λ£κΈ°μ 볡μ‘λκ° μ§λμΉκ² λμλ€. UIμ μ§μ μ μΈ κ΄λ ¨μ΄ μλ λΆλΆμ μ λΆ mock μ²λ¦¬νκ³ , μλμ²λΌ λ¨μν ννλ‘ λ체νλ€.
jest.mock('../../ResultItemComponent', () => ({
__esModule: true,
default: ({ items, answers }) => (
<div data-testid="ordered-result">
<div>Answers: {items.map((item) => item.correctAnswer).join(', ')}</div>
<div>Student Answers: {answers.map((item) => item.answer).join(', ')}</div>
</div>
),
}));
ν΄λΉ ν
μ€νΈλ νμ μ»΄ν¬λνΈμ λ λλ§ κ²°κ³Όλ₯Ό μ νν κ²μ¦νλ λͺ©μ 보λ€λ, μμ 쑰건 λΆκΈ°μ λ°λΌ μ΄λ€ UIκ° νμλλμ§λ₯Ό νμΈνλ λ° μ΄μ μ λλ κ² λ μ μ νλ€κ³ νλ¨νκΈ° λλ¬Έμ mock ꡬ쑰λ λΆκΈ° ν
μ€νΈμ νμν μμ€κΉμ§λ§ ꡬμ±νμλ€.
μμ μ»΄ν¬λνΈμ λΆκΈ° ν
μ€νΈλ₯Ό λ§μΉ λ€, νμ μ»΄ν¬λνΈλ€ μ€ νλλ 컀μμκ² ν
μ€νΈ μ½λ μμ±μ μμΌλ΄€λ€.
it('νμ λ΅μμ΄ μ λ΅κ³Ό μΌμΉν λ A μνκ° νμλμ΄μΌ νλ€', () => {
const props = {
...defaultProps,
studentAnswers: [
{
id: '1',
answer: 'correct answer',
type: Type.Text,
},
],
};
render(<ResultItemComponent {...props} />);
expect(screen.getByTestId('state')).toHaveTextContent('A');
});
ν΄λΉ ν
μ€νΈ μ½λμμλ μΌλΆ νμ
μλ¬λ μ μ±
κ³Ό λ€λ₯Έ λΆλΆλ€μ΄ μμμ§λ§, μ§μ μμ ν΄ μ£Όλ λ¬Έμ μμ΄ λμνλ€.
μ΄λ²μ λ€λ£¬ μ»΄ν¬λνΈ νΈλ¦¬λ λ¨μν λ λλ§μ΄ μλλΌ, μ΅μ
κ³Ό μνμ λ°λΌ λ€μν λΆκΈ° μ²λ¦¬κ° νμν κ΅¬μ‘°λΌ λ΄ κΈ°μ€μμλ ν
μ€νΈ μμ± λμ΄λκ° κ½€ λμμ§λ§, 컀μκ° κΈ°λ³Έ ꡬ쑰λ₯Ό μ‘μμ€ λλΆμ λΉ λ₯΄κ² μμν μ μμκ³ , μ΄ν μΈλΆ μ μ±
λ§ λ³΄μνλ©΄ λλ ννλΌ ν¨μ¨λ λμλ€.
μμΌλ‘λ ν
μ€νΈ μ½λ μμ΄ λμ΄κ°λ μΌμ μμ΄μΌκ² λ€λ μκ°μ΄ λ€μλ€. π₯
'π WIL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Windowing κΈ°λ²μ μ μ©ν λμ©λ κ³ μ±λ₯ ν μ»΄ν¬λνΈ κ°λ°κΈ° (1) | 2025.07.06 |
---|---|
Reactμ νμ λΉκ΅μ keyμ μν (0) | 2025.06.22 |
debugger μμ΄ νΈμΆ μ€ν νμΈνλ λ² (0) | 2025.06.15 |
Stagewise - λΈλΌμ°μ μμ AI μ½λ 컨ν μ€νΈλ₯Ό μ°κ²°ν΄μ£Όλ λꡬ (2) | 2025.06.06 |
λͺ¨λ Έλ ν¬μμ μ€μ 곡ν΅ννκΈ° (1) | 2025.05.30 |