【问题标题】:How do I mock an ADO connection?如何模拟 ADO 连接?
【发布时间】:2013-07-04 11:48:37
【问题描述】:

我正在尝试弄清楚如何模拟 TADOConnection(使用 Delpi XE2 和 SQL 服务器)。问题是,对于单元测试,我希望能够伪造连接并用静态数据而不是数据库中的数据填充数据集。所以当我这样做时,

ADOQuery.Connection := FakeADOConn;  
ADOQuery.SQL.Add(SQLStr);

,只会有一个查找,将SQLStr 与文本文件中的一些预定义数据匹配(我在想XML)。

Textfile -> FakeTADOConnection -> TADODataset -> Data source -> Data Control

但是,当我在谷歌上搜索时,我无法找到任何关于该主题的内容,这让我怀疑我完全不在了,这整个事情都是一个愚蠢的想法。

那么有人可以向我解释一下如何伪造 ADO 连接,或者,为什么想要这样做是一个荒谬的想法?

【问题讨论】:

  • 我不认为这个想法很荒谬,但我相信让它工作起来有点困难,因为你必须实现所有的 IADOConnection 方法。但是,完成后,这确实可以帮助您构建非常好的测试用例。
  • @AlexSC 同样的情况,发帖一次,考虑一下你的答案,但是,由于项目优先级,以及缺乏时间和资料,我不得不拒绝。

标签: sql-server delphi mocking delphi-xe2 ado


【解决方案1】:

像这样声明一个类:

type
  TMockADOConnection = class(TInterfacedObject, IADOConnection)
    // Declare here all the interface methods
  end;

然后您将必须实现所有 IADOConnection 接口方法。

【讨论】:

  • 谢谢!我觉得有点傻;这个答案很简单,但它我的问题的答案(这就是我接受它的原因)。但是,我将采用 Paul Mitchells 的方法,目前正在阅读 Fowlers 企业应用架构模式中的存储库模式。
【解决方案2】:

我认为您可能会发现存储库模式在这里很有用。

【讨论】:

    猜你喜欢
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多