Autofixture: F# ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์— ๋งŒ๋“  2020๋…„ 06์›” 16์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: AutoFixture/AutoFixture

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €ํฌ ํŒ€๊ณผ ์ €๋Š” ํ˜„์žฌ F#์œผ๋กœ ์ž‘์—…ํ•ด ์™”์œผ๋ฉฐ ๊ณผ๊ฑฐ์— AutoFixture๋ฅผ C#๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋งŽ์€ ์„ฑ๊ณต์„ ๊ฑฐ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. F# ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ Discriminated Union ๋ฐ F# List์™€ ๊ฐ™์€ F# ๊ด€๋ จ ํ˜•์‹์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ก  ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ XUnit AutoData ์†์„ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์šฐ๋ฆฌ๊ฐ€ ์‹œ๋„ํ•œ ๋ชจ๋“  F# ์œ ํ˜•๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌํ˜„ ๋ฉด์—์„œ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ–ˆ์ง€๋งŒ ์ด๊ฒƒ์ด F#๊ณผ ํ•จ๊ป˜ AutoFixture๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๊ณตํ†ต๋œ ์š”๊ตฌ ์‚ฌํ•ญ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— AutoFixture ํŒ€์ด ์ด์™€ ๊ฐ™์€ F# ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณต์‹ ํŒจํ‚ค์ง€๋ฅผ ๊ฒŒ์‹œํ•˜๋Š” ๋ฐ ๊ฐ€์น˜๋ฅผ ๋ณด์•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. PR์„ ์ œ์ถœํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ์›ํ•˜๋Š” ๊ฒƒ์ด ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ๋จผ์ € ์—ฌ๊ธฐ์— ์—ฌ์ญค๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

question

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

์•ˆ๋…•ํ•˜์„ธ์š” @josh-draw์ž…๋‹ˆ๋‹ค!
๋‚˜๋Š” ๋‹น์‹ ์˜ ์ œ์•ˆ์ด ํฅ๋ฏธ๋กญ๊ฒŒ ๋“ค๋ฆฐ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ฆ‰๊ฐ์ ์ธ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด AutoFixture.Extensions. ์ด๋ฆ„ ์ ‘๋‘์‚ฌ๋กœ NuGet์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ ๋™์•ˆ ์ œ์•ˆํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ† ๋ก ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
F#์„ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•œ ์ง€ ์–ผ๋งˆ ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ฒฝ๊ณ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ๊ท€ํ•˜์˜ PR์— ๋Œ€ํ•œ ๊ฒ€ํ† ์— ์ฐธ์—ฌํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์•„. AutoFixture.Extensions.FSharp ๋ฐ AutoFixture.Extensions.FSharp.Xunit ์•„๋ž˜์— ๊ฒŒ์‹œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ด๋ฆ„ ์ ‘๋‘์‚ฌ๊ฐ€ ์˜ˆ์•ฝ๋˜์–ด ์žˆ๊ณ  ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์š”์ฒญํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์ค‘๊ฐ„์— ์ž˜๋ชป๋œ ์˜์‚ฌ ์†Œํ†ต์ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฐฉ๊ธˆ ์˜ˆ์•ฝ๋œ ์ ‘๋‘์‚ฌ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด nuget.org ๋ฅผ ํ™•์ธํ–ˆ๋Š”๋ฐ ์‹ค์ œ๋กœ๋Š” AutoFixture.Community.* ์ž…๋‹ˆ๋‹ค.
์˜ˆ์•ฝ๋œ ์ ‘๋‘์‚ฌ๊ฐ€ ๊ธฐ๋Šฅ์ด ๋˜๊ธฐ ์ „์— AutoFixture.Extensions.* ์ ‘๋‘์‚ฌ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ถˆํŽธ์„ ๋ผ์ณ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@josh-degraw ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ NuGet์— ๊ฒŒ์‹œํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋” ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ์—ด์–ด๋ณด์„ธ์š”.

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