Autofixture: ํ† ๋ก : 'Ploeh' ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ ‘๋‘์‚ฌ

์— ๋งŒ๋“  2017๋…„ 04์›” 02์ผ  ยท  32์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: AutoFixture/AutoFixture

์ด ํ‹ฐ์ผ“์„ ์—ด๋ฉด ํ˜„์žฌ AutoFixture์— ์žˆ๋Š” 'Ploeh.AutoFixture' ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ์ž…์žฅ๊ณผ ์ด์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ๋น„์ „์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด ์งˆ๋ฌธ์€ ์ด๋ฏธ ์ œ๊ธฐ ๋˜์—ˆ๊ณ  ์šฐ๋ฆฌ๋Š” ๋ถ„๋ช…ํžˆ ๋ฏธ๋ž˜์— ๋‹ค์‹œ ๋งŒ๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

์šฐ๋ฆฌ๊ฐ€ ํ–‰๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Œ€๋กœ ๋‘๊ฑฐ๋‚˜ Ploeh ์ ‘๋‘์‚ฌ๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค. ๊ฐ ์˜ต์…˜์—๋Š” ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Œ€๋กœ ์œ ์ง€

Mark๊ฐ€ ๋” ์ด์ƒ ์ €์žฅ์†Œ์˜ ์†Œ์œ ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ˜„์žฌ๋กœ์„œ๋Š” ๋ชจ๋“  ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— Ploeh ์ ‘๋‘์‚ฌ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

__์žฅ์ :__

  1. ๊ทธ๊ฒƒ์€ ๊ฝค ์ปธ๊ธฐ ๋•Œ๋ฌธ์— ์ด ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋‚จ๊ธธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. ๊ทธ๋Ÿฌ๋ฉด v4 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋™์•ˆ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

__๋‹จ์ :__

  1. ์†Œ์œ ๊ถŒ์ด ๋งค์šฐ ๋ถˆ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. Mark๊ฐ€ ์—ฌ๊ธฐ ์—์„œ ๋งํ–ˆ๋“ฏ์ด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ทธ๊ฐ€ ์ €์žฅ์†Œ์˜ ์†Œ์œ ์ž๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ ‘๋‘์‚ฌ๋ฅผ ์œ ์ง€ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ํ˜ผ๋ž€์ด ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    ๋ฐ˜๋ฉด์— ์ œ๊ฑฐํ•˜๋ฉด ๊ฐ€์ ธ์˜จ ๋ชจ๋“  ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๊ทธ์˜ ์ด๋ฆ„์ด ๋” ์ด์ƒ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ํ˜ผ๋ž€์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
  1. ์†Œ๋น„์ž์˜ ํ˜ผ๋ž€. ํฌ์ธํŠธ 1๊ณผ ๋น„์Šทํ•ด ๋ณด์ด์ง€๋งŒ ์ฐจ์ด์ ์€ Ploeh ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์•Œ์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด (๋ฐ ๊ธฐ์กด) ์†Œ๋น„์ž์—๊ฒŒ ์™œ ์ด ํŠน์ดํ•œ ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š”์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

์ ‘๋‘์‚ฌ ๋ณ€๊ฒฝ

์˜ต์…˜์€ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๊ณ  Ploeh ์ ‘๋‘์‚ฌ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ ํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์งˆ๋ฌธ์€ ์šฐ๋ฆฌ์˜ ๊ฒฐ์ •์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์žฅ๋‹จ์ ์€ _Keep as is_ ์˜ต์…˜๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

__์žฅ์ :__

  1. ์†Œ์œ ๊ถŒ. AutoFixture๋Š” ์ž์ฒด์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋…๋ฆฝํ˜• ์กฐ์ง์ž„์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. Mark(Ploeh)๋Š” ๋” ์ด์ƒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ด๋Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ Mark์˜ ์†Œ์œ ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ๋„ ์ค„์–ด๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  1. ๋‹จ์ˆœํ™”๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค. ๊ทธ๋Ÿฌ๋ฉด ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ๋ถˆํ•„์š”ํ•œ ๋‹จ์–ด๊ฐ€ ์ œ๊ฑฐ๋˜๋ฏ€๋กœ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ๋œ ์žฅํ™ฉํ•ด์ง‘๋‹ˆ๋‹ค.

__๋‹จ์ :__

  1. v4 ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด๋Š” ์—„์ฒญ๋‚œ ๋ณ€๊ฒฝ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ „์ฒด ์œ ํ˜• ์ด๋ฆ„์ด ์–ด๋”˜๊ฐ€์— ๋ฌธ์ž์—ด๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•œ ๋ฒˆ๋งŒ ํ•˜๋ฉด ๋˜๋ฏ€๋กœ ํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ์ด ๋ชจ๋“  ์†Œ์œ ๊ถŒ์„ ์ถ”์ ํ•˜์ง€ ์•Š๊ณ  AF๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์—๊ฒŒ๋Š” ๊ฝค ์ง€๋ฃจํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ์„  ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ๊ทธ๊ฐ€ ๊ฐœ์ธ์ ์œผ๋กœ ์„ ํ˜ธํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ @ploeh์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ , Mark๋Š” ์—ฌ๊ธฐ์— ๋งŽ์€ ํˆฌ์ž๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์‹ ์˜ ๋น„์ „์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ @ecampidoglio , @moodmosaic ๋ฐ @adamchester์™€ ๊ฐ™์€ ํ•ต์‹ฌ ํŒ€์˜ ์‚ฌ๋žŒ๋“ค์„ ์ฐธ์—ฌ์‹œํ‚ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ฒฐ์ •ํ•œ ํ›„์—๋Š” ๊ฒฐ์ •์— ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋‚˜์ค‘์— ์—ฌ๊ธฐ์— ์งˆ๋ฌธ/๋™์˜ํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ทธ๊ฒƒ์€ Mark์— ๋Œ€ํ•ด ๊ฐ์‚ฌํ•˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. ๋‹น์‹ ์ด ๋‚˜์—๊ฒŒ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ตœ๊ณ ์˜ ๊ฐ์‚ฌ๋Š” AutoFixture๋ฅผ ๊ณ„์† ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋‚˜๋Š” ๊ทธ ์ž์ฒด๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ๋งŒ๋“œ๋Š” ๋ฐ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ณด๋‹ค ๋” ๋งŒ์กฑ์Šค๋Ÿฌ์šด ์ผ์€ ๊ฑฐ์˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  32 ๋Œ“๊ธ€

๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ๋Œ€๋ถ€๋ถ„์˜ OSS ํ”„๋กœ์ ํŠธ์—๋Š” ์ด๋ฆ„๊ณผ ๋™์ผํ•œ ๋ฃจํŠธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋ฏ€๋กœ ์ฃผ ๋ฒ„์ „์„ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ‘ ๋ธŒ๋ ˆ์ดํ‚น ๋ฒ„์ „์—์„œ ๋ฃจํŠธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ AutoFixture ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” Ploeh ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์†Œ์œ ๊ถŒ์€ ๊ด€๋ จ์ด ์—†์œผ๋ฉฐ
์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ณ€๊ฒฝ, ์™œ..?

2017๋…„ 4์›” 2์ผ ์ผ์š”์ผ 14:04 Adam Ralph [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘ ๋ธŒ๋ ˆ์ดํ‚น ๋ฒ„์ „์—์„œ ๋ฃจํŠธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ AutoFixture๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/AutoFixture/AutoFixture/issues/745#issuecomment-290999395 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAwCv_G4V_0nKgVTPpSAOpmMAQ8BMJQ6ks5rr9UpgaJpZM4Mw1jd
.

์ „๋ฐ˜์ ์ธ ๋ถ„์„์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค(์œ„์—์„œ ์„ค๋ช…ํ•œ ์žฅ๋‹จ์ ).

์—ฌ๊ธฐ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฏธ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ํš๊ธฐ์ ์ธ ๋ณ€๊ฒฝ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. OTOH, ๋ฒ„์ „ 3๊ณผ ๋ฒ„์ „ 4 ์‚ฌ์ด์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ณ€๊ฒฝ์€ ๊ฑฐ๋ฒ„๋„Œ์Šค ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์ตœ์†Œํ•œ ๋ฐฉ์–ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „ 4์™€ ๋ฒ„์ „ 5 ์‚ฌ์ด์—์„œ 'Ploeh'๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์–ดํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์–ด๋ ค์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ 'Ploeh'๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ์ง€๊ธˆ์ด ํ•ด์•ผ ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค.

@ploeh ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋” ์งˆ๋ฌธ - ๊ฐœ์ธ์ ์œผ๋กœ ์–ด๋–ค ์˜ต์…˜์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๊นŒ? :) ์ด๊ฒƒ์ด ์•ฝ๊ฐ„ ๊นŒ๋‹ค๋กœ์šด ์งˆ๋ฌธ์ด๋ผ๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์ด ์„ค๋ฆฝ์ž(๋˜๋Š” ๊ณต๋™ ์„ค๋ฆฝ์ž, ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค :flushed:)์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์ค‘์š”ํ•œ ์งˆ๋ฌธ์ด ์ € ํ˜ผ์ž๋งŒ์ด ์•„๋‹ˆ๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ํ”„๋กœ์ ํŠธ์— ์ตœ์„ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒฐ์ •์— ๋„๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜‰

์™ธ๋ถ€ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ Ploeh.Autofixture ์ธ ๊ฒƒ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์„ ์•ฝ๊ฐ„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์—ฌ๊ธฐ GitHub์˜ ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด๋‚˜ ํ”„๋กœ์ ํŠธ์™€ ๊ด€๋ จ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

using Auto... ํ•˜๊ณ  Intellisense์—์„œ ๋นˆ ๋ชฉ๋ก์„ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์€ ์ผ์ข…์˜ ๋†€๋ผ์šด ์ผ์ž…๋‹ˆ๋‹ค.

@Kralizek์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ Fixture.Net์œผ๋กœ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๋ฌธ์ œ(๊ฐœ์ธ์ ์œผ๋กœ๋Š” ์ด ๋‹จ๊ณ„๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ)๋Š” .NET ์ปค๋ฎค๋‹ˆํ‹ฐ ์ด๋ฆ„์—์„œ ๊ฝค ๊ด‘๋ฒ”์œ„ํ•˜๊ณ  ์ž˜ ์•Œ๋ ค์ง„ ์ด๋ฆ„์„ ๊นจ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

@ploeh๊ฐ€ ์“ด ๋‚ด์šฉ์— ๋™์˜

๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ 'Ploeh'๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ์ง€๊ธˆ์ด ํ•ด์•ผ ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ด๊ฒƒ์€ v4 ๋ถ„๊ธฐ์—์„œ๋งŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ๋ณ€๊ฒฝ์€ ๋‹ค์†Œ ์‰ฝ๊ณ  ๊ฒ€์ƒ‰ ๋ฐ ๋ฐ”๊พธ๊ธฐ์ด๋ฉฐ ์ž์ฒด ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ AutoFixture๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  nuspec์— ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ nuget๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด๊ฒƒ๋„ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹น๋ถ„๊ฐ„ ์‚ฌ์šฉ์ž๋Š” AutoFixture 3.x๋กœ ์‰ฝ๊ฒŒ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌธ์„œ, ๋ฆด๋ฆฌ์Šค ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ ๋“ฑ์—์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ Ploeh๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ๊ฐœ์ธ ์ด๋ฆ„์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ์— ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ๊ณ , ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์‹ซ์—ˆ์Šต๋‹ˆ๋‹ค. ;)

๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ AutoFixture๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  nuspec์— ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ธŒ๋ ˆ์ดํ‚น ๋ฒ„์ „์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์šด์ŠคํŠธ๋ฆผ ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค์Œ ์ฃผ์š” ๋ฒ„์ „(์˜ˆ: <dependency id="AutoFixture" version="[3.0,4.0)" /> ์— ๋…์ ์ ์ธ ์ƒํ•œ์„ ์„ ๋‘์ง€ ์•Š๋„๋ก ์„ ํƒํ•œ ๊ฒฝ์šฐ AutoFixture์˜ ์ฃผ์š” ๋ฒ„์ „์ด ๋ฆด๋ฆฌ์Šค๋  ๋•Œ๋งˆ๋‹ค ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@abatishchev Fixture.Net ๋Š” ๋‹ค๋ฅธ ํ† ๋ก ์—์„œ ๋‚˜์˜จ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ AutoFixture ๋ณ€๊ฒฝํ•˜๊ธฐ

@moodmosaic ์ด์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์ž…์žฅ๋„ ์ถ”๊ฐ€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ตœ์ข… ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“  ํ•ต์‹ฌ ๊ด€๋ฆฌ์ž์˜ ์˜๊ฒฌ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ฮ™ ๋Š” ์ด๋ฏธ ํ–ˆ์Šต๋‹ˆ๋‹ค.

@moodmosaic ๊ทธ ๋‹ต๋ณ€์„ ๋ณด์•˜์ง€๋งŒ ๊ท€ํ•˜์˜ ์ž…์žฅ์ด ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ํˆฌํ‘œํ•˜์‹ญ๋‹ˆ๊นŒ? :)

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉํ•ด๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค.

๋ฐฉํ•ด๊ฐ€ ๋˜๋Š” ์ผ์„ ํ•˜๋Š” ๊ฒƒ์ด ๊ฑฑ์ •๋˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.
๋œ ๋ฐฉํ•ด๊ฐ€ ๋˜๋Š” ๊ฒƒ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์ „ํ˜€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ชจ๋“  ๊ณผ์ •์€ ๊ทธ๊ฒŒ ์•„๋‹ˆ์ž–์•„์š”?
๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๋‹น์‹ ์ด ์ด ๋ณ€ํ™”๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@moodmosaic ๊ทธ ๋‹ต๋ณ€์„ ๋ณด์•˜์ง€๋งŒ ๊ท€ํ•˜์˜ ์ž…์žฅ์ด ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฃจํŠธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ v4 AutoFixture ๋กœ ์ด๋ฆ„์ด

Ploeh ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ด์ „ ํˆฌํ‘œ ๋ฅผ

์†Œ์œ ๊ถŒ์˜ ๋ณ€๊ฒฝ์„ ๊ฐ์•ˆํ•  ๋•Œ ์•ž์œผ๋กœ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์™€ ์ ์ ˆํ•œ ์‹œ๊ธฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐ˜๋ก ์€ ์˜ค๋กœ์ง€ ๊ฐ์ •์— ๊ทผ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

@ecampidoglio , ๋‚˜๋„ ๊ฐ์ •์ด ์žˆ์—ˆ์ง€๋งŒ v4์—์„œ _AutoFixture_๋งŒ์œผ๋กœ ๋” '์ •ํ™•'ํ•œ ๊ฒƒ ๊ฐ™์•„์š”...

@moodmosaic ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ์ผ์ด ์‹ค์ œ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋” ๋งŽ์ด ๋ฐฐ์šธ์ˆ˜๋ก Mark๊ฐ€ ์—ฌ๊ธฐ์„œ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์˜ ์–‘์„ ๋” ๋งŽ์ด ๋ณด๊ณ  ๊นจ๋‹ซ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋งŽ์€ ๋‹ค์–‘ํ•œ ํ† ๋ก , ์‚ฌ์†Œํ•œ ์กฐ์ •, SO์— ๋Œ€ํ•œ ๋‹ต๋ณ€ ๋“ฑ. ์ ‘๋‘์‚ฌ๋ฅผ ๋‹ค๋“ฌ๋Š” ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ์ด ์ ์  ๋” ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. ๋งˆํฌ์— ๋Œ€ํ•ด ๊ฐ์‚ฌํ•˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ธก๋ฉด์—์„œ๋Š” ๊ฐ„๋‹จํ•œ AutoFixture ์ ‘๋‘์‚ฌ๊ฐ€ ํ›จ์”ฌ ๋” ์ข‹๊ณ  ์ผ๊ด€์ ์œผ๋กœ ๋ณด์ผ ๊ฒƒ์ด๋ผ๋Š” ์ ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค,์ด ๋งˆํฌ์˜ ์ด๋ฆ„์€ ์•„์ง ๊ฒฐ์ •ํ•˜๊ฒŒ์กฐ์ฐจ ์–ด๋ ค์›Œ์ง„๋‹ค ์ ‘๋‘์‚ฌ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด @adamchester ๋ฐ @ecampidoglio ํˆฌํ‘œ๋กœ .. ํŒจํ‚ค์ง€ ์ €์ž, ์œ„ํ‚ค, ๋ฌธ์ œ์˜ ๋ชฉ๋ก์— ํ‘œ์‹œ๋˜๋Š” ๋ฐ”์™€ ๊ฐ™์ด, ์—ฌ๊ธฐ์— ๋”์ฐํ•œ ์•„๋ฌด๊ฒƒ๋„ - ๋งŽ์€์˜๋ฅผ ๊ฐ์ •์ ์ธ ๊ฒƒ๋“ค์ด ์—ฌ๊ธฐ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ฐ์ •์ ์ธ ๋ถ€๋ถ„์„ ๋ถ„๋ฆฌํ•˜๊ณ  ํ˜ผ๋™ํ•˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค ํŠธ๋ฆฌ๋ฐ์„ Mark์˜ ์ž‘์—…์— ๋Œ€ํ•œ ๊ฐ๊ฐ€์ƒ๊ฐ ํ–‰์œ„๋กœ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์ˆœ์ˆ˜ํ•œ ๊ฐ€์‚ฌ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ ‘๋‘์‚ฌ๊ฐ€ ์—†์–ด๋„ ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ทธ์—๊ฒŒ ๋งค์šฐ ๊ฐ์‚ฌ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ๋„ˆ๋ฌด ๋Šฆ๊ฒŒ ์‹œ์ž‘ํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ์•ˆํ•  ๋•Œ(์•„๋ฌด๋„ ๋‚˜๋ฅผ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค) Mark์˜ ๊ธฐ์—ฌ๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋”ฐ๋ผ์„œ ์ตœ์ข… ๋‹จ์–ด๋Š” ํ™•์‹คํžˆ ํ•ต์‹ฌ ๊ธฐ์—ฌ์ž์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@zvirja ๋‚˜๋Š” ๋‹น์‹ ์ด ๋‚ด ์ด์ „ ์˜๊ฒฌ ์„ ์ž˜๋ชป ์ดํ•ดํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์œ ์ง€ํ•˜๊ณ  ์‹ถ์ง€๋งŒ v4์˜ AutoFixture ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜‰

๋‚ด ์˜๊ฒฌ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ @ecampidoglio ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถˆํ•„์š”ํ•œ ํ˜ผ๋ž€์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋งŒ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์ง€๋งŒ v4์—์„œ AutoFixture ๋กœ ๋ณ€๊ฒฝํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ Mark์— ๋Œ€ํ•ด ๊ฐ์‚ฌํ•˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. ๋‹น์‹ ์ด ๋‚˜์—๊ฒŒ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ตœ๊ณ ์˜ ๊ฐ์‚ฌ๋Š” AutoFixture๋ฅผ ๊ณ„์† ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋‚˜๋Š” ๊ทธ ์ž์ฒด๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ๋งŒ๋“œ๋Š” ๋ฐ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ณด๋‹ค ๋” ๋งŒ์กฑ์Šค๋Ÿฌ์šด ์ผ์€ ๊ฑฐ์˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๋งˆํฌ!

์œ„์˜ ๋ชจ๋“  ๋‹ต๋ณ€๊ณผ ํ•ต์‹ฌ ํŒ€์ด ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ณ€๊ฒฝ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•˜๋ฉด v4 ๋ฒ”์œ„์— ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์–ด์…ˆ๋ธ”๋ฆฌ ์ด๋ฆ„์— ๋Œ€ํ•ด ๋ฌป๊ธฐ ์œ„ํ•ด ๊ฐ„๊ณผ ํ•œ ๊ฒƒ์ด ํ•˜๋‚˜ ๋” ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์–ด์…ˆ๋ธ”๋ฆฌ ์ด๋ฆ„๋„ Ploeh๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ ‘๋‘์‚ฌ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์–ด์…ˆ๋ธ”๋ฆฌ์˜ ์ด๋ฆ„๋„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค(์˜ˆ: Phoeh.AutoFixture.dll ์—์„œ AutoFixture.dll ). NuGet์ด ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ฑฑ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๊ฒƒ์€ ์ด๊ฒƒ์ด ์ƒˆ๋กœ์šด ์–ด์…ˆ๋ธ”๋ฆฌ ID๊ฐ€ ๋˜๊ณ  v3์—์„œ v4๋กœ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฆฌ๋””๋ ‰์…˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@moodmosaic , @adamchester ๋ฐ @ecampidoglio - ์–ด์…ˆ๋ธ”๋ฆฌ ์ด๋ฆ„ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ์ด์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ค‘์š”ํ•œ ๋ณ€ํ™”์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์–ผ๋งˆ๋งŒํผ์„ ํ‰๊ฐ€ํ•  ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

v4์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ์ด๋ฆ„์ด ๋ฐ”๋€Œ๋ฉด v4 ๋กœ์˜ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ”์ธ๋”ฉ ๋ฆฌ๋””๋ ‰์…˜์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ๊ทธ๋ฆฌ๊ณ  ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด ์–ด์…ˆ๋ธ”๋ฆฌ ์ด๋ฆ„์„ AutoFixture(.*)๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ข‹์€ ์ง€์ , ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋†“์ณค๋‹ค. ์‹ค์ œ๋กœ ๋ชจ๋“  ์œ ํ˜•์˜ ์ „์ฒด ์ด๋ฆ„์€ ๋‹ค๋ฅด๋ฏ€๋กœ ๋ฆฌ๋””๋ ‰์…˜์ด ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. @adamchester ์™€ @ecampidoglio ๊ฐ€ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋ฉด ์ด๋ฆ„๋„ ๋ณ€๊ฒฝํ•ฉ์‹œ๋‹ค.

์™„๋ฃŒ! "Ploeh" ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฐ ์–ด์…ˆ๋ธ”๋ฆฌ ์ด๋ฆ„ ์ ‘๋‘์‚ฌ๋Š” v4์—์„œ ์ œ๊ฑฐ๋˜์–ด ๋Œ€์‹  "AutoFixture"๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ํ˜„์žฌ ์ œํ’ˆ์€ AutoFixture ํŒ€์—์„œ๋งŒ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์—…๋ฐ์ดํŠธ๋œ ์†Œ์œ ๊ถŒ์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์–ด์…ˆ๋ธ”๋ฆฌ์— ๊ด€ํ•œ ํ•œ ์—ฐ์†์„ฑ์˜ ์„ ์„ ๊นจ๋Š” ๊ฒƒ์ž„์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค. ์ฆ‰, ์ƒˆ ํŒจํ‚ค์ง€์—๋Š” ์ƒˆ ๋ฒ„์ „์˜ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์ด์ „ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ  ์ƒˆ๋กœ์šด ID๋ฅผ ๊ฐ€์ง„ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ์–ด์…ˆ๋ธ”๋ฆฌ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ”์ธ๋”ฉ ๋ฆฌ๋””๋ ‰์…˜๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ํŒจํ‚ค์ง€ 3.x์— ํฌํ•จ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ์™€ 4.x์— ํฌํ•จ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ ๊ฐ„์— ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์ด๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ์ง€์ ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

BTW - ํŒจํ‚ค์ง€๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋  ๋•Œ NuGet์˜ ๋™์ž‘์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๊นŒ? SDK ์Šคํƒ€์ผ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ์— ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์•„๋‹Œ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” <PackageReference> ์š”์†Œ๋งŒ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „ ์Šคํƒ€์ผ์˜ csproj๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด NuGet์ด ํ•œ ์–ด์…ˆ๋ธ”๋ฆฌ์—์„œ ๋‹ค๋ฅธ ์–ด์…ˆ๋ธ”๋ฆฌ๋กœ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฐธ์กฐ๋ฅผ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ณ€๊ฒฝํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@adamralph ๊ฑฑ์ • ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด๋Š” ๋ฐ”์ธ๋”ฉ ๋ฆฌ๋””๋ ‰์…˜๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ํŒจํ‚ค์ง€ 3.x์— ํฌํ•จ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ์™€ 4.x์— ํฌํ•จ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ ๊ฐ„์— ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ์••๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฏธ ๊ธฐ๋ณธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์–ด์…ˆ๋ธ”๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  ํ˜•์‹์— ๋Œ€ํ•œ ID๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€๋ฒผ์šด ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ”์ธ๋”ฉ ๋ฆฌ๋””๋ ‰์…˜์€ ์žฌ์ปดํŒŒ์ผ ๋ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ์ˆ˜์ • ์—†์ด๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์™„์ „ํžˆ ๊ดœ์ฐฎ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์—„์ฒญ๋‚œ ๋ณ€ํ™”์ง€๋งŒ ํ•œ ๋ฒˆ๋งŒ ์ผ์–ด๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

BTW - ํŒจํ‚ค์ง€๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋  ๋•Œ NuGet์˜ ๋™์ž‘์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ, ์ด๋ฏธ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. using Ploeh.AutoFixture ๋ฅผ using AutoFixture ๋กœ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ…์ŠคํŠธ ๋ฐ”๊พธ๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ปดํŒŒ์ผ๋˜๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉด.

๋‹น์‹ ์ดํ•ด์•ผ ํ•  ์œ ์ผํ•œ ์ผ์€ AutoFixture๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Ploeh.AutoFixture๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ…์ŠคํŠธ ๋ฐ”๊พธ๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ปดํŒŒ์ผ๋˜๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋œ ํ›„.

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

tiesmaster picture tiesmaster  ยท  7์ฝ”๋ฉ˜ํŠธ

zvirja picture zvirja  ยท  3์ฝ”๋ฉ˜ํŠธ

josh-degraw picture josh-degraw  ยท  4์ฝ”๋ฉ˜ํŠธ

mjfreelancing picture mjfreelancing  ยท  4์ฝ”๋ฉ˜ํŠธ

Accc99 picture Accc99  ยท  4์ฝ”๋ฉ˜ํŠธ