Cuando la clase utilizada Assembly.GetEntryAssembly run() en la prueba de unidad, el Assembly.GetEntryAssembly() es nulo. ¿Hay alguna opción para definir Assembly.GetEntryAssembly() durante la prueba unitaria?.NET NUnit prueba - Assembly.GetEntryAssembly() es nulo
Respuesta
Puede hacer algo como esto con Rhino Mocks: Encapsule la llamada Assembly.GetEntryAssembly() en una clase con la interfaz IAssemblyLoader e inyéctela en la clase que está probando. Esto no se ha probado, pero algo en la línea de lo siguiente:
[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();
}
}
poner en práctica el método de SetEntryAssembly (montaje Asamblea) da en
http://frostwave.googlecode.com/svn-history/r75/trunk/F2DUnitTests/Code/AssemblyUtilities.cs
a su proyecto de prueba unitaria.
/// <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);
}
El enlace está roto. – Spivonious
No estoy seguro si esto ayuda: https://github.com/lyphtec/LyphTEC.Repository.Dapper/blob/master/src/LyphTEC.Repository.Dapper.Tests/AssemblyUtils.cs – JohnZaj
- 1. ¿Es posible parametrizar una prueba de nunit?
- 2. prueba si un shared_ptr es NULO
- 3. prueba si getJSONArray es nulo o no
- 4. Pass lambda para parametrizado NUnit prueba
- 5. NUnit: prueba sin excepción esperada
- 6. La prueba NUnit falla debido a System.AccessViolationException
- 7. NUnit Error: No es un conjunto de prueba de
- 8. ¿Es NUnit una mala elección para la prueba de selenio?
- 9. En .Net/C#, ¿es nulo fuertemente tipado?
- 10. ¿Funciona NUnit con .NET 3.5?
- 11. ¿Cómo ignoro una prueba basada en otra prueba en NUnit?
- 12. especifique la prueba NUnit para ejecutar
- 13. NUnit 2.5.8, lotes de nunit-agent.exe
- 14. Marco de prueba de unidades .NET favorito
- 15. Prueba de aplicación web para .Net (registrador de prueba WatiN)
- 16. Prueba Si una propiedad no es nulo antes de regresar
- 17. Prueba para nulo y no nulo en Mathematica
- 18. Test Driven .NET no usará NUnit addins
- 19. TestContext es nulo
- 20. Prueba unitaria XML: alternativas XmlUnit para .NET?
- 21. .net MVC prueba funcional
- 22. nUnit vs xUnit?
- 23. Prueba automatizada .NET (¿Gallio?)
- 24. Prueba SMTP con .net
- 25. ¿Cuál es el mejor corredor de pruebas Nunit que hay?
- 26. Prueba la lógica de Windows Forms con NUnit
- 27. NUnit assembly not found
- 28. Cómo registrar errores, mensajes en una prueba de unidad NUnit?
- 29. Wrong CurrentCulture al ejecutar una prueba nUnit en TeamCity
- 30. ¿Cómo puedo cargar este archivo en una prueba NUnit?
Puede crear una instancia de ensamblaje simulada y usarla para las pruebas de su unidad. – Bernard
@Bernard: ¿Cómo puedo hacerlo? – Simon
Utilice uno de los métodos estáticos de la clase de montaje, tales como GetAssembly() o GetCallingAssembly(). – Bernard