C# 具有长启动时间的单元测试WCF服务

C# 具有长启动时间的单元测试WCF服务,c#,.net,unit-testing,wcf,C#,.net,Unit Testing,Wcf,我们有一个启动时间为几分钟的WCF服务,因为大量数据必须加载到内存中 我们的问题是,如何在不多次重新启动服务的情况下测试所有方法? 详细内容: 我们从另一个WCF服务测试服务契约的方法,这样我们只需要启动一次WCF服务。也就是说,我们启动服务和测试服务,后者调用我们的服务来运行相关的单元测试 对于不需要内存中数据的方法,我们只是在服务内部实现了单元测试 我们的问题涉及所有需要内存中的数据且不属于数据契约的方法。我们必须如何为这些方法实现单元测试,以便我们可以运行多个测试,并且服务必须只启动一次

我们有一个启动时间为几分钟的WCF服务,因为大量数据必须加载到内存中

我们的问题是,如何在不多次重新启动服务的情况下测试所有方法?

详细内容:

  • 我们从另一个WCF服务测试服务契约的方法,这样我们只需要启动一次WCF服务。也就是说,我们启动服务和测试服务,后者调用我们的服务来运行相关的单元测试

  • 对于不需要内存中数据的方法,我们只是在服务内部实现了单元测试

  • 我们的问题涉及所有需要内存中的数据且不属于数据契约的方法。我们必须如何为这些方法实现单元测试,以便我们可以运行多个测试,并且服务必须只启动一次?实际上,我们在服务内部实现了这些单元测试,但是如果我们运行测试,那么一旦测试完成,服务就必须启动和关闭


请注意,无法将相关方法移动到库中或将其添加到服务合同中。

如果我理解正确,您遇到的主要问题是如何处理WCF服务的状态,因为它在启动时需要WCF服务

首先,很高兴看到您为所有不依赖于服务状态的测试用例实现了单独的单元测试


当涉及到测试有状态方法时,您需要进行集成测试(但我不想因为术语而大惊小怪)如果我理解正确,您遇到的主要问题是如何处理WCF服务的状态,因为它在启动时需要它

首先,很高兴看到您为所有不依赖于服务状态的测试用例实现了单独的单元测试


当涉及到测试有状态方法时,您需要进行集成测试(但我不想因为术语而大惊小怪,非常感谢,[OneTimeSetUp]-属性正是我搜索到的。但是“这样您就可以访问和测试所有其他无法通过接口/契约访问的公共方法”是什么意思呢?这只适用于公共方法吗?我们如何测试私有方法和内部方法?很高兴在这里:-)通常您不会直接测试私有方法。当从公共方法调用私有方法时,会间接测试它们。对于内部方法,您可以使用。非常感谢,[OneTimeSetUp]-属性正是我搜索到的。但是“这样您就可以访问和测试所有其他无法通过接口/契约访问的公共方法”是什么意思呢?这只适用于公共方法吗?我们如何测试私有方法和内部方法?很高兴在这里:-)通常,您不会直接测试私有方法。当从公共方法调用它们时,它们将被间接测试。对于内部方法,可以使用。