我将为您的单元测试创建一个测试服务。通常,在这些情况下,我要做的是为测试项目创建一个与实际项目相同的配置,但地址将是本地主机,类型将是我的测试服务类:
<service name="MyNamespace.TestService" behaviorConfiguration="BehaviorConfig">
<endpoint address="net.tcp://localhost/MySolution/TestService"
binding="netTcpBinding"
bindingConfiguration="BindingConfig"
contract="MyNamespace.IMyService"/>
如果您使用的是VS Test Project,则可以使用ClassInitialize/ClassCleanup属性来设置/删除服务:
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext) {
mHost = new ServiceHost(typeof(TestService));
mHost.Open();
return;
}
[ClassCleanup()]
public static void MyClassCleanup() {
if(mHost != null) {
mHost.Close();
}
return;
}
现在在TestService类(它将实现IMyService)中,您可以提供测试客户机所需的任何行为,而不必担心单元测试会损坏生产代码