μλ
νμΈμ,
μ§κΈμ μ΄μ κ°μ κ³ μ μ₯μΉμλ§ μ‘μΈμ€ν μ μμ΅λλ€.
[Theory, AutoData]
public void Dummy(string dummy)
{
MethodBase method = MethodBase.GetCurrentMethod();
IFixture fixture = method.GetCustomAttribute<AutoDataAttribute>().Fixture;
Assert.Equal(dummy, dummy);
}
κ·Έλ¦¬κ³ 'AutoDataAttribute.Fixture'κ° λ μ΄μ μ¬μ©λμ§ μλλ€λ κ²½κ³ λ₯Ό λ°μμ΅λλ€.
AutoData μμ±μμ μμ±λ μ‘°λͺ
κΈ°μ μ κ·Όνλ λ μ’μ λ°©λ²μ΄ μμ΅λκΉ? 맀κ°λ³μμ μλ μμ± λ° μ£Όμ
μ νΌν©νκ³ μΆμ΅λλ€.
κ°μ¬ ν΄μ
μλ νμΈμ,
λ¬Όλ‘ IFixture
μΈμ€ν΄μ€λ₯Ό ν΄κ²°νλλ‘ κΈ°λ³Έ κ³ μ μ₯μΉμ μμ²νλ©΄ μ체λ₯Ό λ°νν©λλ€.
c#
[Theory, AutoData]
public void Dummy(string dummy, IFixture fixture)
{
}
λΉμ μ μν΄ μλν©λκΉ? :λμ§:
μ, μ λ§ λ λμ λ°©λ²μ λλ€.
μ΄κ²μ AutoData μν€μ λ£μ μ μμ΅λκΉ?
λλ μ΄κ²μνλ λ°©λ²μ μ°ΎκΈ° μν΄ λͺ¨λ κ³³μ κ²μνμ΅λλ€.
IOC 컨ν
μ΄λκ° IFixtureλ₯Ό λ±λ‘νλ€κ³ μκ°νμ§ μμμ΅λλ€.
μ λ§ κ°μ¬ν©λλ€!
μ IoCμ μ‘°λͺ κΈ°λ₯Ό λ±λ‘νλ €κ³ ν©λκΉ? μ κ²½νμ μ λ νμνμ§ μμ΅λλ€
μ£Όλ‘ λ³΅μ‘ν λ°λ³΅ μΈν°νμ΄μ€ μ€μ μ λν ν μ€νΈ λ°©λ² λ§€κ°λ³μλ₯Ό μ΅μνν©λλ€.
[Theory, AutoMoqData]
public void Dummy(IFixture fixture, [Frozen]Mock<IComplexInterfaceWith30SubInterfaces> needed, TestClass sut)
{
//This will add interfaces setups for needed by retrieving them from the IoC container or by property access.
SetupInterfaces(fixture, needed);
//We can now use needed injected in sut.
}
λ κ°λ¨ν μκ° μμ΅λλ€
λλ λΉμ μ΄ μ΄κ²μ μ νΈν©λλ€
[Theory, AutoMoqData]
public void Dummy(IFixture fixture)
{
Assert.Equal(String.Empty, String.Empty);
}
μ΄κ²μ
[Fact]
public void Dummy2()
{
IFixture fixture = new Fixture().Customize(new AutoMoqCustomization());
Assert.Equal(String.Empty, String.Empty);
}
μ£Όλ‘ λ³΅μ‘ν λ°λ³΅ μΈν°νμ΄μ€ μ€μ μ λν ν μ€νΈ λ°©λ² λ§€κ°λ³μλ₯Ό μ΅μνν©λλ€.
λμν©λλ€. ν
μ€νΈμμ λΉμ·ν μ¬μ©λ²μ΄ μμ΅λλ€. μ μΌν μ°¨μ΄μ μ 보쑰 λ°λ³΅ λ©μλμ When()
μ λμ¬λ₯Ό μΆκ°νλ κ²μ μ νΈνλ―λ‘ ν
μ€νΈλ λ€μκ³Ό κ°μ΅λλ€.
c#
public void Test([Frozen] IProvider provider, ISut sut, IFixture fixture)
{
// arrange
WhenProviderReturnsOnlyInitializedEntities(provider, fixture);
.....
}
νμ§λ§ κΈ°λ³Έ μμ΄λμ΄λ μ¬μ ν λμΌν©λλ€ π
λ μ΄μ μμ μ΄ νμνμ§ μμΌλ―λ‘ μ΄ νλͺ©μ λ«μ΅λλ€.
μ΄κ²μ AutoData μν€μ λ£μ μ μμ΅λκΉ?
@malylemire1 μμΌλ‘ μ΄λκ°μ λ¬Έμ μ¬μ΄νΈλ₯Ό λ§λ€ μμ μ λλ€. κ·Έλ¬λ μ΄ μνμ μ°λ¦¬ μν€μ μμ λ‘κ² μΆκ°νμΈμ π
κ°μ₯ μ μ©ν λκΈ
μ, μ λ§ λ λμ λ°©λ²μ λλ€.
μ΄κ²μ AutoData μν€μ λ£μ μ μμ΅λκΉ?
λλ μ΄κ²μνλ λ°©λ²μ μ°ΎκΈ° μν΄ λͺ¨λ κ³³μ κ²μνμ΅λλ€.
IOC 컨ν μ΄λκ° IFixtureλ₯Ό λ±λ‘νλ€κ³ μκ°νμ§ μμμ΅λλ€.
μ λ§ κ°μ¬ν©λλ€!