के साथ स्वत: कॉन्फ़िगर किया गया मल्टी कस्टमाइज़ेशन मैं ऑटोफिक्चर 3.21.0, ऑटोफिक्चर.ऑटोमोक 3.21.0, न्यूट 2.6.3 और मोक 4.2.1409.1722 का उपयोग करता हूं।अमूर्त वर्ग कार्यान्वयन इंटरफ़ेस
मेरे पास निम्न इंटरफ़ेस है, दो सार कक्षाएं (उनमें से एक इस इंटरफ़ेस को लागू करती है), और दो यूनिट परीक्षण।
टेस्ट पास।
public interface IMigration
{
IMigrationParameters MigrationParameters { get; set; }
}
public abstract class AbstractSutWithoutInterface
{
public IMigrationParameters MigrationParameters { get; set; }
}
public abstract class AbstractSutWithInterface : IMigration
{
public IMigrationParameters MigrationParameters { get; set; }
}
[TestFixture]
public class UnitTests
{
[Test]
public void TestAbstractSutWithoutInterface()
{
var fixture = new Fixture();
fixture.Customize(new AutoConfiguredMoqCustomization());
var mock = fixture.Create<AbstractSutWithoutInterface>();
Assert.IsNotNull(mock.MigrationParameters); // test passes
}
[Test]
public void TestAbstractSutWithInterface()
{
var fixture = new Fixture();
fixture.Customize(new AutoConfiguredMoqCustomization());
var mock = fixture.Create<AbstractSutWithInterface>();
Assert.IsNull(mock.MigrationParameters); // test passes
}
}
मेरा प्रश्न क्यों AutoConfiguredMoqCustomization है कि प्रॉपर्टी के आधार पर सार कक्षाओं के लिए अलग व्यवहार इंटरफ़ेस द्वारा या नहीं परिभाषित किया गया है है? पहली टेस्ट संपत्ति में शून्य नहीं होने के लिए कहा जाता है लेकिन दूसरे परीक्षण में शून्य है। यदि कक्षाएं अमूर्त नहीं हैं, तो संपत्ति इंजेक्शन दोनों वर्गों के लिए अपेक्षित काम करता है।
क्या वे कक्षाएं 'अमूर्त' कीवर्ड गायब हैं? –
@PatrickQuirk स्रोत कोड में अनुपलब्ध कीवर्ड को इंगित करने के लिए धन्यवाद। मैंने इसे सही किया है। – sgnsajgon
मैं पुन: उत्पन्न नहीं कर सकता, दोनों मामलों में वे मेरे लिए शून्य नहीं हैं। मैं नवीनतम ऑटोफिक्शन संस्करण का उपयोग कर रहा हूं, जिसका आप उपयोग कर रहे हैं? –