繁体   English   中英

单元测试Web API

[英]unit testing web api

当前,我们有一个Web API(.Net核心2.1),它具有一个被调用的服务。 服务基于接口,服务方法负责业务逻辑和CRUD工作。

我们正在使用Entity Framework与db进行通信,并使用Services在其方法中使用的UnitOfWork模式。 我们如何测试这些调用,而不会影响数据库? 我看到了Moq框架,但不确定如何避免db调用? 为了创建我的控制器,我需要传递我的服务,该服务的构造函数采用通过.net依赖项注入完成的unitofwork。

我不确定如何模拟数据部分。 Moq会自动执行此操作,还是我需要设置虚假数据,然后Moq会将其用于我的数据库调用? 例如,如果我想检查GET请求是否返回数据。 或帖子返回确定。

如果使用依赖注入,则可以模拟要注入的对象,然后在Moq的帮助下模拟对象(我假设您正在注入实际上连接到数据库的对象)。

基本上,您告诉Moq应如何调用方法(设置方法)以及应返回什么。 然后,当您的业务逻辑尝试从该模拟对象中使用此方法时,实际上是您的模拟对象在应答调用而不是db。

这是一个很好的快速示例,说明了如何使用起订量

但是,我再次假设您正在注入实际进行调用的对象。 我认为您要注入的所有对象都需要模拟,因为您正在测试接收注入而不是注入的对象...

为了使Moq真正有用,请确保所有外部依赖项都具有自己的类并且正在注入它,以使您的代码易于测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM