嘿 我有服务和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测试这个web服务。但我发现问题 - 在服务中我使用生产数据库中的模型,但在测试中我想用开发数据库测试服务。
如何从数据库中独立服务?
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);
}
}
答案 0 :(得分:1)
在您的服务中添加属性设置器,并在执行测试之前注入您自己的模型容器。
您还需要重构您的服务,以便它不会在服务方法中初始化容器。 (或者只有在它为空时才会出现)