【问题标题】:C# Mock TestingC# 模拟测试
【发布时间】:2014-12-03 15:11:21
【问题描述】:

我有一个登录数据库并检查用户名和密码的单元测试,但我现在需要使用模拟重新创建这些测试。

我一直在网上搜索,但找不到与我想要实现的目标类似的东西。以下是原始测试

[TestMethod()]
public void LoginTest()
{
    this.errorText = string.Empty;
    this.user = MasterDataManager.GetInstance().Login("JohnSmith", "123", out errorText);
    Assert.AreEqual(string.Empty, errorText);
}

我根据我在网上找到的内容编写了一个测试,它通过了,但我真的不知道为什么要诚实。我在这里使用过 Rhino Mocks,但我愿意接受任何帮助或解决方案来帮助我前进

[TestMethod()]
public void LoginTestMock()
{
    var repo = MockRepository.GenerateMock<IAbstractConnector>();
    repo.Login("JohnSmith", "123", out errorText);
    repo.VerifyAllExpectations();
}

【问题讨论】:

  • 你认为“VerifyAllExpectations”会检查什么?在这种情况下,您认为“通过单元测试”实际上意味着什么?
  • 你想测试什么?
  • 我正在尝试模拟一个返回空字符串的测试
  • 您的测试只使用了一个模拟,这并没有多大意义。在我看来,您仍然应该调用与最初相同的方法,但将模拟传递给被测类,因此它实际上不会访问数据库。

标签: c# unit-testing rhino-mocks


【解决方案1】:

回答您的“...它通过了,但我真的不知道为什么要诚实。”:它通过了,因为您没有设定任何期望,因此无需验证。 检查,例如

http://en.wikibooks.org/wiki/How_to_Use_Rhino_Mocks/Introduction

【讨论】:

    猜你喜欢
    • 2011-04-11
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多