【问题标题】:C# Unit Test MOQ Method for GetAccounts not being tested未测试 GetAccounts 的 C# 单元测试 MOQ 方法
【发布时间】:2017-05-17 22:39:06
【问题描述】:

我正在学习为银行应用程序创建单元测试方法作为我作业的一部分,但我遇到了一个问题:

由于某种原因,测试方法GetAccounts() 未在 Visual Studio 上进行测试。我得到的输出消息是

“发现测试完成:找到 0 个”

这是下面的测试方法块。

[TestMethod]
public void GetAccounts()
{
    var testAccount = this.MockDatabase.GetAccounts();
    Assert.IsNotNull(testAccount);
    Assert.AreEqual(4, testAccount.Count);
}

如何让 Visual Studio 发现测试并给我一些结果?

如果有人想让我发布更多我的代码,而不仅仅是上面的 sn-p,请告诉我。很高兴为您提供更多信息。

【问题讨论】:

  • 类也有属性吗?
  • 确保测试类也有[TestClass]属性。显示完整的测试。
  • 啊,是的,它确实有一个属性。我没有将它包含在那段代码中。不过谢谢。

标签: c# unit-testing testing moq


【解决方案1】:

确保测试类也有[TestClass]属性

[TestClass] //<--- Test classes must have this attribute to discover test methods
public class AccountTests {
    IDatabase MockDatabase;

    [TestInitialize]
    public void Arrange() {

        var accounts = new List<Account>
        {
            new Checking( new Customer(1, "Alex", "Parrish"), 12, 30.00M ),
            new Savings( new Customer(2, "Alex", "Russo"), 12, 29.00M ),
            new Checking( new Customer(3, "Emma", "Swan"), 12, 30.00M ),
            new Savings( new Customer(4, "Henry", "Mills"), 12, 30.00M )
        };

        var dataMock = new Mock<IDatabase>();
        dataMock.Setup(_ => _.GetAccounts()).Returns(accounts);

        //...code removed for brevity

        MockDatabase = dataMock.Object;
    }

    [TestMethod]
    public void GetAccounts() {
        var testAccount = this.MockDatabase.GetAccounts();
        Assert.IsNotNull(testAccount);
        Assert.AreEqual(4, testAccount.Count);
    }

    //...code removed for brevity
}

【讨论】:

  • 啊,是的,它确实有一个属性。我没有将它包含在那段代码中。不过谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 2021-10-15
  • 2014-11-08
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
相关资源
最近更新 更多