независимый сервис от базы данных / модели EDM - протестируйте веб-сервис от nunit - PullRequest
0 голосов
/ 16 мая 2011

Привет, у меня есть сервис и модель EDM - Model1Container:

public class Service1 : System.Web.Services.WebService
    {

        Model1Container modelDataBase = new Model1Container();

        [WebMethod]
        public List<Person> getData()
        {
            using (modelDataBase = new Model1Container())
            {
                var a = from aa in modelDataBase.Person
                        select aa;

                return a.ToList();
            }
        }
}

, и я хочу протестировать этот веб-сервис с помощью nunit.Но я нахожу проблему - в сервисе я использую модель из производственной базы данных, но в тесте я хочу протестировать сервис с базой данных разработки.

Как я могу отключить сервис от базы данных?

public class TestClass
    {
        Model1Container model = new Model1Container();

        [TestFixtureSetUp]
        public void SetUp()
        {
            using (Model1Container model = new Model1Container())
            {
                Person p = new Person()
                {
                    name = "Michal",
                    surname = "Nowak",
                    age = 12,
                    dateOfBirth = new DateTime(1987, 12, 3)

                };
                model.AddToPerson(p);
                model.SaveChanges();
            }
        }

        [Test]
        public void TestGetData()
        {
            WebService1.Service1 service = new WebService1.Service1();
            var actual = service.getData();
            Assert.AreEqual(1, actual.Count);
        }
    }

1 Ответ

1 голос
/ 16 мая 2011

Добавьте установщик свойств в свою службу и внедрите свой собственный контейнер модели перед выполнением теста.

Вам также потребуется реорганизовать службу, чтобы она не инициировала контейнер в методе службы.(Или только в единицах, если он нулевой)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...