0

我有一个三层的 Web 应用程序:Web > Services > Core。我刚刚添加了一个 Services.Tests 单元测试项目,我正试图弄清楚如何开始。

我已将 Services.Tests 项目中的引用添加到 Services 项目中。然后,我在我的 Test 类中创建了 Services.service 类的实例:

[TestClass]
public class CrudTests
{
    private readonly SetServices _setService = new SetServices();

    [TestMethod]
    public void TestMethod()
    {

但是我收到一个关于_setService需要引用我的核心项目的错误。

第一个问题:如果服务项目已经引用了我的核心项目,为什么我需要引用它?

我添加了引用并运行了空测试,它通过了。然后我尝试在我的服务类中调用其中一种基本方法:

[TestMethod]
public void TestMethod()
{
    _setService.CreateSet("Test Set", "Test Set Details", null);

但我得到一个providerIncompatileException.

第二个问题:创建/使用专用测试数据库的推荐方法是什么?

第三个问题:我如何告诉我的测试项目使用哪个数据库?

4

1 回答 1

1

按零件,

如果服务项目已经引用了我的核心项目,为什么我需要引用它?

根据此答案,项目引用不可继承。Services依赖于的事实Core并不意味着消费的人Services需要知道任何关于的事情Core,或者为此使用专门定义在 中的任何逻辑Core

创建/使用专用测试数据库的推荐方法是什么?

这完全取决于什么数据库、什么 ORM、什么框架等。没有固定的方法来做到这一点。

如何告诉我的测试项目使用哪个数据库?

以同样的方式告诉应用程序这样做:通过配置。只需创建一个DatabaseStub并在其中硬编码测试数据库信息。

于 2013-02-20T18:44:47.487 回答