gpt4 book ai didi

wpf - 在 MVVM 中为 WPF 使用 specflow

转载 作者:行者123 更新时间:2023-12-04 21:43:04 28 4
gpt4 key购买 nike

我第一次尝试使用 MVVM 模式的 WPF 项目的 specflow。所以,我有存储库、 Controller 、 View 和 View 模型。 Repository 调用 webservice 至命中数据库并返回数据。 View 模型具有验证用户输入和调用存储库方法的方法。

在我的规范流中,我应该进行完整的调用,包括存储库方法还是应该使用 Moq 模拟这些方法?是否有意义?

最佳答案

简短的回答:
你可以让你的调用命中数据库,但我建议你模拟它们,除非你的数据库中有逻辑

长答案:
有两种相互竞争的方式来看待这个问题。首先,您希望使用 SpecFlow 进行什么样的测试,其次,访问您的数据库有多容易。

如果您正在使用 SpecFlow 来测试您的低级技术要求,那么您确实在做 单元测试 在示例样式的规范中。所以这真的应该决定你使用模拟来隔离你的单位。 (我个人会坚持使用 NUnit 进行这些测试。)

然而,如果您使用 SpecFlow 来测试您的业务场景(即验收测试),那么您的场景依赖于多个单元来提供功能。这更像是集成或系统测试,因此需要涉及许多组件,理论上因为我们正在测试整个系统,我们应该在其中包含一个数据库,特别是如果您甚至有一个您可能想要的存储过程或 View 稍后进行回归测试。

但是,第二种看待这个问题的方法是拥有一个可用于测试的数据库需要多少痛苦。

  • 如果您的开发团队中有不止一个人,如果您同时运行测试,您需要采取哪些策略来避免失败?
  • 例如,您可以在每次运行中生成一个新的唯一客户,并且只访问针对该客户的更新和查询,这样您就不会得到错误数量的订单。
  • 测试运行后,您将如何重置数据库?
  • 例如。如果您使用正确类型的数据库,您可以将一个空的 .mdb checkin 您的源代码管理,然后回滚/恢复到那个。

  • 我个人发现,对于没有存储过程和 View 的简单数据库,模拟更好,但是一旦您将业务逻辑添加到数据库中,您就需要以某种方式测试该逻辑。

    关于wpf - 在 MVVM 中为 WPF 使用 specflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14499114/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com