जब कक्षा विधानसभा का उपयोग करती है। GETEntryAssembly() यूनिट परीक्षण में चलाती है, विधानसभा.GetEntryAssembly() शून्य है। क्या यूनिट परीक्षण के दौरान विधानसभा को परिभाषित करने के लिए कुछ विकल्प है। GETEntryAssembly()?.NET NUnit test - Assembly.GetEntryAssembly() शून्य
उत्तर
आप राइनो मोक्स के साथ ऐसा कुछ कर सकते हैं: असेंबली को एन्सेप्लेट करें। गेटएन्ट्रीएस्परब्स() इंटरफ़ेस IAssemblyLoader के साथ एक कक्षा में कॉल करें और इसे उस कक्षा में इंजेक्ट करें जिसे आप परीक्षण कर रहे हैं। यह परीक्षण नहीं किया है, लेकिन इस की तर्ज पर कुछ:
[Test] public void TestSomething() {
// arrange
var stubbedAssemblyLoader = MockRepository.GenerateStub<IAssemblyLoader>();
stubbedAssemblyLoader.Stub(x => x.GetEntryAssembly()).Return(Assembly.LoadFrom("assemblyFile"));
// act
var myClassUnderTest = new MyClassUnderTest(stubbedAssemblyLoader);
var result = myClassUnderTest.MethodToTest();
// assert
Assert.AreEqual("expected result", result);
}
public interface IAssemblyLoader {
Assembly GetEntryAssembly();
}
public class AssemblyLoader : IAssemblyLoader {
public Assembly GetEntryAssembly() {
return Assembly.GetEntryAssembly();
}
}
SetEntryAssembly लागू (विधानसभा विधानसभा) विधि अपने इकाई परीक्षण परियोजना के लिए
http://frostwave.googlecode.com/svn-history/r75/trunk/F2DUnitTests/Code/AssemblyUtilities.cs
में दी गई।
/// <summary>
/// Use as first line in ad hoc tests (needed by XNA specifically)
/// </summary>
public static void SetEntryAssembly()
{
SetEntryAssembly(Assembly.GetCallingAssembly());
}
/// <summary>
/// Allows setting the Entry Assembly when needed.
/// Use AssemblyUtilities.SetEntryAssembly() as first line in XNA ad hoc tests
/// </summary>
/// <param name="assembly">Assembly to set as entry assembly</param>
public static void SetEntryAssembly(Assembly assembly)
{
AppDomainManager manager = new AppDomainManager();
FieldInfo entryAssemblyfield = manager.GetType().GetField("m_entryAssembly", BindingFlags.Instance | BindingFlags.NonPublic);
entryAssemblyfield.SetValue(manager, assembly);
AppDomain domain = AppDomain.CurrentDomain;
FieldInfo domainManagerField = domain.GetType().GetField("_domainManager", BindingFlags.Instance | BindingFlags.NonPublic);
domainManagerField.SetValue(domain, manager);
}
लिंक टूटा हुआ है। – Spivonious
यह सुनिश्चित नहीं करता है कि यह मदद करता है: https://github.com/lyphtec/LyphTEC.Repository.Dapper/blob/master/src/LyphTEC.Repository.Dapper.Tests/AssemblyUtils.cs – JohnZaj
- 1. एएसपी.NET + NUnit: .NET 4
- 2. NUnit
- 3. NUnit
- 4. NUnit
- 5. @Test
- 6. NUnit एक्सटेंशन
- 7. NUnit असेंबली नहीं मिला
- 8. NUnit
- 9. NUnit
- 10. NUnit
- 11. nunit
- 12. NUnit
- 13. NUnit
- 14. JQuery: "var test" और "var $ test"
- 15. NUnit 2.5.2
- 16. setup.py test
- 17. Boost :: test
- 18. NUnit परीक्षण System.AccessViolationException
- 19. NUnit सभी परीक्षणों
- 20. NUnit और app.config
- 21. TestDriven.NET और NUnit
- 22. Nunit परीक्षण
- 23. NUnit 2.5.8
- 24. NUnit - एक DLL
- 25. NUnit, CollectionAssert.AreEquivalent (..., ...), सी # प्रश्न
- 26. जावास्क्रिप्ट रेगेक्स .test()
- 27. Resharper test runner
- 28. NUnit TestCaseSource फ़ैक्टरी
- 29. रनिंग nunit-सांत्वना System.IO.FileLoadException
- 30. NUnit विजुअल स्टूडियो 2010 कोड
आप एक नकली असेंबली उदाहरण बना सकते हैं और अपने यूनिट परीक्षणों के लिए इसका उपयोग कर सकते हैं। – Bernard
@ बर्नार्ड: मैं इसे कैसे कर सकता हूं? – Simon
विधानसभा वर्ग स्थैतिक विधियों में से एक का उपयोग करें, जैसे GetAssembly() या GetCallingAssembly()। – Bernard