2017-05-17 112 views
1

我学习创建一个银行应用程序单元测试方法为我分配的一部分,我有一个问题:C#单元测试方法MOQ没有测试

的测试方法GetAccounts()没有被在Visual Studio中由于某种原因进行了测试。输出消息我得到的是

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

这是下面的测试方法块。

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

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

如果有人希望我发布更多我的代码,而不仅仅是上面的代码片段,请告诉我。我很乐意为您提供更多信息。

+1

有类也是一个属性? –

+0

确保测试类也具有'[TestClass]'属性。显示完整的测试。 – Nkosi

+0

啊是的,它确实有一个属性。我没有把它包含在那段代码中。但是,谢谢。 – crhodes

回答

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 
} 
+0

啊,是的,它确实有一个属性。我没有把它包含在那段代码中。但是,谢谢。 – crhodes