[๊ฐ์ ์์ฒญ์ ๋๋ค]
์ฐ๋ฆฌ๊ฐ ์ธ ์ ์๋ค๋ฉด ๋ฉ์ง ๊ฒ์ ๋๋ค.
Fixture.Create
Fixture๋ฅผ ์ธ์คํด์คํํ๋ ๋์
var ๊ณ ์ ์ฅ์น = new Fixture();
Fixture.Create
autofixture์ NDC์์์ ํ๋ ์ ํ
์ด์
์์ ๋น์ ์ ๋ชจ๋ ํ
์คํธ ๋ฉ์๋์์ ์ฌ์ฉํ๊ธฐ ์ํด ํ
์คํธ ํด๋์ค์ ์์ฑ์์์ ๋ณ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ ์ซ์ดํ๋ค๊ณ ๋งํ์ต๋๋ค. ๋น์ ์ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ด ๋ ๋ช
ํํ๋ค๊ณ ๋งํ์ต๋๋ค. ๋๋ ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋น์ ์ ์์ด๋์ด๋ฅผ ๋ฐ๋์ง๋ง ๋ฌธ์ ๋ ํ์ฌ ๊ฐ ๋ฐฉ๋ฒ์์ ์ Fixture๋ฅผ ์ธ์คํด์คํํ๊ณ ์๊ณ ์ค์ ๋ก ํฌ์ด ์๋๋๋ค. Fixture.Create๋ฅผ ํธ์ถํ๋ ๊ฒ์ ์ ํธํ๋ค๋ ๊ฒ์
๋๋ค.
์ด๋ป๊ฒ ์๊ฐํด ?
์, ์ ๋ ์ ์ธ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ง๋ง ICustomize๋ฅผ ๊ตฌํํ๋ ์ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ ฌํ ํฌ์ ์๋๋๋ค. ๋ฐ๋ผ์ ํ๋์ ํ ์คํธ ๋ฐฉ๋ฒ์์ ๋ชจ๋ ๊ฒ์ ๋ณผ ์๋ ์์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ค์ ๋๋์ง ๋ณด๋ ค๋ฉด ํด๋์ค๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ์ ๋ฉ์๋๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ ์คํธ ๋ฉ์๋๋ง๋ค ICustomize๋ฅผ ๊ตฌํํ๋ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ถ์ง ์์ต๋๋ค.
6๊ฐ์ ํค ์ ๋ ฅ์ ์ ์ฅํ๋ ๊ฒ ์ธ์๋
``` C#
var foo = Fixture.Create
provide any advantage that
``` c#
var foo = new Fixture().Create<Foo>();
๊ทธ๋ ์ง ์์?
์ถ๊ฐ ํค ์ ๋ ฅ์ ๋ํ ๋ฌธ์ ๋ Visual Studio ์ฝ๋ ์กฐ๊ฐ ์ ๋ง๋ค์ด ํด๊ฒฐํ ์ ์์ต๋๋ค.
Mark๋, ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ์ฝ๋ ์ค๋ํซ์ ์ฌ์ฉํ๋ฉด ๋ ๋น ๋ฅด๊ฒ ์ ๋ ฅํ ์ ์์ง๋ง ๊ฐ๋ ์ฑ์ ์ํด ์ฝ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
Fixture.Create
Fixture.Build
~๋ณด๋ค
์๋ก์ด Fixture().Create
์๋ก์ด Fixture().Build
์ด๊ฒ์ ์ฝ๊ฐ์ ํฅ์์ด์ง๋ง autofixture๋ฅผ ์ฌ์ฉํ ๋ ๋ด ์ฌ์ฅ์ด ํจ์ฌ ๋ ๋ฐ๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค.
๊ทธ๋ด ์ ์์ง. ๊ทธ๋ฌ๋ ๊ฐ๋ ์ฑ์ ์ฃผ๊ด์ ์ ๋๋ค.
๋ด ๊ฒฝํ์, ๋๋ถ๋ถ์ ์ฝ๋ ๊ธฐ๋ฐ์์ ์ฌ๋๋ค์ ์ฝ๋ ๊ธฐ๋ฐ ๋๋ ์ฌ์ฉํ๋ ์ ํธ๋ฆฌํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ชจ๋ ์์ ๋จ์ ์ ์์ฉํ๊ธฐ ์ํด Fixture ์ธ์คํด์ค๋ฅผ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ฌ์ฉ์ ์ ์ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด (IIRC) ๊ธฐ๋ณธ ํด๋์ค์ ์ํ ์ฐธ์กฐ๊ฐ ์๋ ํน์ ๋ถ๋ถ์ด ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ ๋ฐ๋๋ผ Fixture ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์ฌ ASP.NET MVC ์ปจํธ๋กค๋ฌ๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ฐ์์ Fixture.Create<T>()
๋ฐฉ๋ฒ์ด ์ผ๋ฐ ๊ธฐ๋ณธ Fixture ์ธ์คํด์ค์์ ์๋ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ ์ฉ์ฑ์ด ์ ํ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ AutoFixture๋ฅผ ์ทจํ๊ณ ์ ํ๋ ๋ฐฉํฅ์ด ์๋๋ฏ๋ก ์ด ์ ์์ ๋ซ์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋ฌํ ๋ํผ๋ฅผ ์ง์ ๋ง๋๋ ๊ฒ์ ๋ฐฉํดํ๋ ๊ฒ์ ์์ต๋๋ค. ๊ตฌํํ๋ ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
๋๋ ๋ํ ์๋ก์ด Fixture()๋ฅผ ์ ์งํ๋ ์์ด๋์ด๋ฅผ ์ข์ํ์ง๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฒด์ ์ถ๊ฐ ์ ์ ๋จ์ถํค(๊ฐ์ธ ์ ์ ์ธ์คํด์ค์ ๋ํ)๋ ์์ต๋๋ค. ๋ํผ๋ ํ์ฅ ๋ฉ์๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ฐ๋จํ์ง๋ง(์: ๋ค์์คํ์ด์ค) ๊ด๋ฆฌํ๊ณ ํ๋ก์ ํธ์์ ํ๋ก์ ํธ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ์ฝ๊ฐ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค.
๊ฐ์ฌ ํด์,