当前位置: 首页 > news >正文

网站用什么图片格式好wordpress预定插件

网站用什么图片格式好,wordpress预定插件,可口可乐软文范例,长沙seo工资单元测试中有几个神秘的概念#xff0c;它们就是Mock#xff0c;模拟对象#xff1b;Stub#xff0c;存根#xff1b;Fake#xff0c;伪对象#xff0c;它们听起来很类似#xff0c;也很容易混淆#xff0c;让我们通过这篇文章揭开它们神秘的面纱#xff0c;探索其幽… 单元测试中有几个神秘的概念它们就是Mock模拟对象Stub存根Fake伪对象它们听起来很类似也很容易混淆让我们通过这篇文章揭开它们神秘的面纱探索其幽深的小径。1.什么是伪对象Fake伪对象,通俗的将就是假货是用来代替具有“智能”对象的假货实现。通常是一个快捷实现使它在不同的单元测试中有用但不能用作集成测试。到目前为止我看到的最常见的例子是数据仓储层中。假设我有一个标准的 SQL Server 仓储库如下所示public interface IUserRepository {void Insert(object user);Listobject GetAllUsers(); }public class UserRepository : IUserRepository {public Listobject GetAllUsers(){//到数据库取用户集. }public void Insert(object user){//插入用户到数据库} } 涉及到实际的实现部分时可能包含逻辑和调用数据库的方法。当涉及到对可能使用 IUserRepository 的类例如 UserService进行单元测试时我们会遇到一些问题。因为我们不希望我们的单元测试接触到数据库坦率地说我们并不真正关心 UserRepository 的实现。所以我们创建了一个伪对象而不是直接使用已经实现的真实对象public class FakeUserRepository : IUserRepository {private Listobject _users new Listobject();public Listobject GetAllUsers(){return _users;}public void Insert(object user){_users.Add(user);} } 在我们的 fake 中我们实际上获取了插入的用户并将其添加到内部列表中。当调用 GetAllUsers 时我们返回相同的列表。现在每当单元测试需要调用 IUserRepository 时我们可以在 FakeUserRepository中进行补充并且立即“工作”。这里的主要内容是实现了业务上的相似这是一个“真正的”实现实际上就像一个存储库一样只是在幕后没有实际的数据库。2.什么是存根(Stub)存根是一种返回硬编码响应的实现.存根没有任何“智能”。没有将对象上的调用捆绑在一起而是每个方法只返回一个预定义的固定响应。让我们看看如何为上述创建存根public class StubOneUserRepository : IUserRepository {public Listobject GetAllUsers(){return new Listobject();}public void Insert(object user){//啥都不做~} } 看起来它有点类似于我们的伪对象但……不完全是。这里插入不影响 GetAllUsersGetAllUsers 本身返回一个没有任何内容的预设响应。我在测试期间对这个对象所做的任何事情都不会改变它的功能。存根用于满足代码内部的条件而不是测试功能。如果我的代码在存储库上调用“插入”但我并不真正关心我的特定测试的数据会发生什么那么存根是有意义的这就省去了编写伪对象“智能”业务的工作。仓储库的例子显得有些奇葩因为仓储库总是应该返回动态数据来测试代码中的各种条件。因此让我使用另一个在现实世界中更有可能需要存根的示例。假设有一个界面告诉用户是否经过“身份验证”。它看起来像这样public interface IUserAuthenticatedCheck {bool IsUserAuthenticated(); } 现在对于我们的测试总是需要对用户进行身份验证也许是为了满足一些基础框架条件。可以像这样定义存根public class StubUserAuthenticatedCheckTrue : IUserAuthenticatedCheck {//返回验证过~~~public bool IsUserAuthenticated() true; } 没有是否应该对用户进行身份验证的智能算法没有其他值只是一个直接的“总是返回真”的方法。固定就是存根擅长的地方。3.什么是模拟对象(Mock)模拟是一个预设的对象可以将动态响应/行为定义为测试的一部分并预先定义好。它们不需要去特别实现或实例化并且通常不需要在测试之间共享行为。我们将在哪里使用 Mock 呢是您想要相对动态的任何地方对于特定测试满足条件。假设我正在编写一个调用以下接口的测试public interface IShopService {bool CheckShopIsOpen(int shopId); } 我们所做的就是检查商店是开还是关。这个实际实现类可能会调用数据库或某种 webservice/api但我们不想将其作为单元测试的一部分。如果在这里使用Fake伪对象我们需要添加一些虚拟方法来判断商店是应该开还是关。也许是这样的public class FakeShopService : IShopService {public bool ShouldShopBeOpen { get; set; }public bool CheckShopIsOpen(int shopId){return ShouldShopBeOpen;} } 呃好像有些复杂为了能够控制商店是开放还是关闭我们需要添加新方法。如果使用存根Stub必须将真/假响应硬编码到具体类中。可能是这样的public class StubShopService : IShopService {private Dictionaryint, bool _shops new Dictionaryint, bool{{ 1, true },{ 2, false }};public bool CheckShopIsOpen(int shopId){return _shops[shopId];} } 这适用于预定义的 id 列表以及商店是开还是关。但是如果您在测试中使用它并传入 1 的 id从测试中并不能立即清楚为什么得到 true 的响应可能需要回来看看你的硬编码那么如何使用模拟对象来解决这个问题当然建议你直接使用 Moq 库var _mockShopService new MockIShopService(); _mockShopService.Setup(x x.CheckShopIsOpen(1)).Returns(true); 就在测试代码中当使用模拟对象 ID 为 1 的 CheckShopIsOpen 时非常清楚返回 true。它也是特定于这个测试的并且不会强迫我们在任何地方硬编码任何东西或者创建具体的类。当我们有一个测试要求商店 id 1 为假时…_mockShopService.Setup(x x.CheckShopIsOpen(1)).Returns(false); so easy4. 何时使用 Mock、Fake 和 Stub一切并不是绝对的你懂得当想要一个可重用的具体实现时请使用 Fake该实现与真实实现类似具有跨测试的可重用性例如内存数据库当想要在测试中重复使用的硬编码响应/实现时使用存根Stub当需要对单个测试进行动态响应时使用 Mock不过一般测试可能并不会分的这么严格大部分情况下我只使用Mock不服来战~~~~好了希望您能更好地理解这些测试对象的用途并对何时使用每个对象有更多的了解。最后祝你好运5.小结关注我不迷路看到这了点个赞再走思聪语录别嫌我臭我就是你的臭宝~~
http://www.zqtcl.cn/news/142233/

相关文章:

  • 服务器上面建设网站网站为什么显示正在建设中
  • 德阳网站优化网络顾问
  • 大淘客可以做几个网站hm网上商城
  • 网站建设分配人员方案呼市网站制作招聘
  • 电商网站建设方案100例用什么做php网站
  • 网站开发设计课程教案南宁网站建设招聘
  • 常州微信网站建设wordpress 中英主题
  • 新零售型网站开发网络营销常用的工具和方法
  • 陕西省建设监理协会网站证书网站建设去哪里找客户
  • 上海网站注销吗如何在wordpress上调用百度地图
  • 网站设计与开发实例网站semseo先做哪个
  • 一个网站做3个关键词够找人建设一个网站多少钱
  • 网站群软件阿里云虚拟主机wordpress
  • 自己做个网站要多少钱温州网站开发平台
  • 北京鑫创网站建设找个网站你知道的
  • 做网站找客户电子商务网站开发与管理
  • 宝安高端网站设计怎么样qq钓鱼网站怎么制作
  • 学习教建网站公众号小程序怎么注销
  • 网站建设或网站优化排名做建筑设计网站
  • 外贸seo外贸推广外贸网站建设外贸网站建设用图片设置网站首页
  • 网站模板安装出入成都通知今天
  • wordpress网站 添加微信网站设计O2O平台佛山总代理
  • 广州网站开发定制方案网站建设应该考虑哪些方面
  • 在线网站建设培训门户类网站图片
  • 佛山乐从网站建设自媒体平台收益排行榜
  • 网站建设项目需求陕西陕煤建设集团有限公司网站
  • 鼓楼网站开发永州做网站tuantaogou
  • ui网站建设站评价文山建设5G网站
  • 深圳 网站设计公司企业网络搭建教程
  • 做网站策划遇到的问题全网营销型网站模版