์๋ ํ์ธ์, ์ ํฌ ํ๊ณผ ์ ๋ ํ์ฌ F#์ผ๋ก ์์ ํด ์์ผ๋ฉฐ ๊ณผ๊ฑฐ์ AutoFixture๋ฅผ C#๊ณผ ํจ๊ป ์ฌ์ฉํ์ฌ ๋ง์ ์ฑ๊ณต์ ๊ฑฐ๋์์ต๋๋ค. F# ์ฝ๋๋ฅผ ํ ์คํธํ๋ ๋ฐ ์ฌ์ฉํ๊ณ ์ถ์์ง๋ง Discriminated Union ๋ฐ F# List์ ๊ฐ์ F# ๊ด๋ จ ํ์์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๋ก ํ ์คํธ๋ฅผ ์ํ XUnit AutoData ์์ฑ๋ฟ๋ง ์๋๋ผ ์ฐ๋ฆฌ๊ฐ ์๋ํ ๋ชจ๋ F# ์ ํ๊ณผ ํจ๊ป ์๋ํ๋๋ก ํ๋ ์ฌ์ฉ์ ์ง์ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์์์ต๋๋ค.
๊ตฌํ ๋ฉด์์๋ ๋งค์ฐ ๊ฐ๋จํ์ง๋ง ์ด๊ฒ์ด F#๊ณผ ํจ๊ป AutoFixture๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ชจ๋ ์ฌ๋์ ๊ณตํต๋ ์๊ตฌ ์ฌํญ์์ ์ ์ ์์๊ธฐ ๋๋ฌธ์ AutoFixture ํ์ด ์ด์ ๊ฐ์ F# ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณต์ ํจํค์ง๋ฅผ ๊ฒ์ํ๋ ๋ฐ ๊ฐ์น๋ฅผ ๋ณด์๋์ง ๊ถ๊ธํฉ๋๋ค. PR์ ์ ์ถํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์์ ์ํ๋ ๊ฒ์ด ์๋์ง ์์๋ณด๊ธฐ ์ํด ๋จผ์ ์ฌ๊ธฐ์ ์ฌ์ญค๋ณด๊ณ ์ถ์ต๋๋ค.
์๋
ํ์ธ์ @josh-draw์
๋๋ค!
๋๋ ๋น์ ์ ์ ์์ด ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฐ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ปค๋ฎค๋ํฐ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฆ๊ฐ์ ์ธ ์ด์ ์ ์ป์ ์ ์๋ค๊ณ ์๊ฐ๋๋ฉด AutoFixture.Extensions.
์ด๋ฆ ์ ๋์ฌ๋ก NuGet์ ๊ฒ์ํ ์ ์์ต๋๋ค.
๊ทธ ๋์ ์ ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ํ ๋ก ์ ์์ํ๊ธฐ ์ํด PR์ ํ ์ ์์ต๋๋ค.
F#์ ๋ฐฐ์ฐ๊ธฐ ์์ํ ์ง ์ผ๋ง ๋์ง ์์์ง๋ง ๊ฒฝ๊ณ ํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ์ ์ง ๊ด๋ฆฌ์๊ฐ ๊ทํ์ PR์ ๋ํ ๊ฒํ ์ ์ฐธ์ฌํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ด์ฐฎ์. AutoFixture.Extensions.FSharp
๋ฐ AutoFixture.Extensions.FSharp.Xunit
์๋์ ๊ฒ์ํ๋ ค๊ณ ์๋ํ์ง๋ง ์ด๋ฆ ์ ๋์ฌ๊ฐ ์์ฝ๋์ด ์๊ณ ๋ค์์คํ์ด์ค์ ์
๋ก๋ํ ์ ์๋ ์ก์ธ์ค ๊ถํ์ ์์ฒญํ๋ค๊ณ ํฉ๋๋ค.
์ฌ๊ธฐ์ ์ค๊ฐ์ ์๋ชป๋ ์์ฌ ์ํต์ด์์์ต๋๋ค.
๋ฐฉ๊ธ ์์ฝ๋ ์ ๋์ฌ๋ฅผ ํ์ธํ๊ธฐ ์ํด nuget.org
๋ฅผ ํ์ธํ๋๋ฐ ์ค์ ๋ก๋ AutoFixture.Community.*
์
๋๋ค.
์์ฝ๋ ์ ๋์ฌ๊ฐ ๊ธฐ๋ฅ์ด ๋๊ธฐ ์ ์ AutoFixture.Extensions.*
์ ๋์ฌ๊ฐ ์ฌ์ฉ๋์์ต๋๋ค.
๋ถํธ์ ๋ผ์ณ๋๋ ค ์ฃ์กํฉ๋๋ค.
@josh-degraw ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ NuGet์ ๊ฒ์ํ์์ ์ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ฒ ์ต๋๋ค. ๋ ๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด ์ธ์ ๋ ์ง ๋ค์ ์ด์ด๋ณด์ธ์.