No sabe cómo puedo solucionar este problema, tratando de hacer una prueba de unidad en el método "GetByTitle"Moq: configuración no válida en un miembro no reemplazable: x => x.GetByTitle ("asdf")
Aquí son mis definiciones: prueba
public class ArticleDAO : GenericNHibernateDAO(IArticle, int>, IArticleDAO
{
public IArticle GetByTitle(string title)
{
IQuery query = Session.CreateQuery("...")
return query.UniqueResult<IArticle>();
}
}
public interface IArticleDAO
{
IArticle GetByTitle(string title);
}
unidad:
[Test]
public void can_load_by_title()
{
_mockDaoFactory.Setup(x => x.GetArticleDao())
.Returns(_mockArticleDao.Object);
_mockArticleDao.Setup(x => x.GetByTitle("some title"))
.Returns(article1.Object);
_articleManager.LoadArticle("some title");
Assert.IsNotNull(_articleManager.Article);
}
Ejecución de la prueba me da el error:
System.ArgumentException: Invalid setup on a non-overridable member:
x => x.GetByTitle("some title")
actualización
Mi [Setup]
parece:
[Setup]
public void SetUp()
{
_mockDaoFactory = new Mock<IDaoFactory>();
_mockArticleDao = new Mock<ArticleDao>();
_articleManager = new ArticleManager(_mockDaoFactory.Object);
}
¿Instancias '_mockDaoFactory' y' _mockArticleDao' en alguna parte? ¿Se burla de la clase o la interfaz? –
Sí, me burlé de la daofactory y del artículo de simulación Dao en [Configuración] usando la interfaz. el DAO fue hecho usando la clase. – mrblah
@tomas Actualicé mi pregunta con el código de configuración. – mrblah