Necesito usar algunos componentes de WPF en una prueba de unidad NUnit. Funciono con la prueba a través de ReSharper, y se produce el siguiente error al utilizar el objeto de WPF:Uso de componentes WPF en pruebas NUnit: cómo usar STA?
System.InvalidOperationException:
El subproceso de llamada debe ser STA, debido a que muchos componentes de interfaz de usuario requieren.
He leído sobre este problema, y parece que el hilo debe ser STA, pero todavía no he resuelto cómo hacerlo. Lo que desencadena el problema es el siguiente código:
[Test]
public void MyTest()
{
var textBox = new TextBox();
textBox.Text = "Some text"; // <-- This causes the exception.
}
Esto no es una prueba de la unidad. Además, ¿está seguro de que quiere que sus pruebas dependan de los componentes de WPF? La IU debe separarse de la lógica de la aplicación por razones como las anteriores. – Finglas
Bueno, soy consciente de que no hay una prueba real aquí, y esta no es la prueba de mi unidad. Sin embargo, este es un código suficiente para mostrar el punto. Además, el problema está relacionado con el hecho de que se trata de una prueba de unidad nNnit ejecutada a través de ReSharper, por lo que debo mantener este contexto para la pregunta. Sin embargo, su otro punto es válido. No quiero que las pruebas de mi unidad dependan de los componentes de WPF, pero por ahora esta parece ser la mejor solución. Veré si puedo sacarlo de allí más tarde. – stiank81
Si quiere ver por qué tengo UI en la lógica de la aplicación, vea mi otra pregunta: http://stackoverflow.com/questions/2220842/modifying-ui-from- commands-using-command-binding-in-wpf – stiank81