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

网站建设怎样创建链接网站页面优化简单吗

网站建设怎样创建链接,网站页面优化简单吗,清新区住房和城乡建设部网站,wordpress+歌曲列表点击蓝字关注我们gtest的问题gtest需要安装有时候带来很多不方便#xff0c;比如需要经常切换gcc和clang的时候就比较麻烦#xff0c;安装的gtest可能在另一个编译器下编译不过, 编写跨平台程序的时候需要多次安装gtest#xff0c;非常不便。另外一个问题是网络原因#xf… 点击蓝字关注我们  gtest的问题gtest需要安装有时候带来很多不方便比如需要经常切换gcc和clang的时候就比较麻烦安装的gtest可能在另一个编译器下编译不过, 编写跨平台程序的时候需要多次安装gtest非常不便。另外一个问题是网络原因下载安装gtest或者git上拉gtest都可能因为网络原因失败。现代C unit test库除了gtest之外还有很多轻量级易用的单元测试库比如doctest和catch相比gtest需要编译/安装他们都是header only的直接包含到工程里就可以做单元测试了portable又没有任何依赖而且对编译器版本要求也不高只需要C11就行了用了之后只有一个字爽这里推荐使用doctest(https://github.com/doctest/doctest)原因是它的性能比catch更好(https://github.com/doctest/doctest/blob/master/doc/markdown/benchmarks.md)当然也比gtest好, 来看看doctest怎么用的吧。doctest基本用法#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include doctest.hTEST_CASE(vectors can be sized and resized) {std::vectorint v(5);REQUIRE(v.size()  5);REQUIRE(v.capacity()  5);SUBCASE(adding to the vector increases its size) {v.push_back(1);CHECK(v.size()  6);CHECK(v.capacity()  6);}SUBCASE(reserving increases just the capacity) {v.reserve(6);CHECK(v.size()  5);CHECK(v.capacity()  6);} }这里使用CHECK做断言和gtest的EXPECT_xx是类似的我觉得doctest更酷更实用的一个特性是SUBCASE, 允许在当前case下增加更多的子case去测试一些special一些的东西非常实用这也是相比gtest更好的一个地方。doctest提供了很多丰富的宏完全可以满足我们的测试需要。doctest的断言宏CHECK宏是只检查并不会终止测试REQUIRE宏则会终止测试和gtest里面的ASSET_XX宏类似这两个宏也是平时做单测时用得最多的两个宏了。除此之外还有更丰富的宏。比如LEVEL is one of 3 possible: REQUIRE/CHECK/WARN.LEVEL_EQ(left, right) - same as LEVEL(left  right) LEVEL_NE(left, right) - same as LEVEL(left ! right) LEVEL_GT(left, right) - same as LEVEL(left  right) LEVEL_LT(left, right) - same as LEVEL(left  right) LEVEL_GE(left, right) - same as LEVEL(left  right) LEVEL_LE(left, right) - same as LEVEL(left  right) LEVEL_UNARY(expr) - same as LEVEL(expr) LEVEL_UNARY_FALSE(expr) - same as LEVEL_FALSE(expr)判断异常的宏CHECK_THROWS_AS(func(), const std::exception); CHECK_THROWS_AS(func(), std::exception); // same as aboveCHECK_THROWS_WITH(func(), invalid operation!);CHECK_THROWS_WITH_AS(func(), invalid operation!, std::runtime_error);LEVEL_NOTHROW(expression)doctest异常的宏非常有特色比gtest的异常断言更强大可以同时比较异常类型和异常信息。也许有人会说gtest除了这些基本的测试断言之外还有gmock呀doctest没有gmock这样的mock库。是的doctest确实没有mock库但是doctest很容易和其它现代C的mock库结合起来使用比如FakeIt。现代C mock库FakeIt(https://github.com/eranpeer/FakeIt)是C11写的header only的mock库用起来也很方便struct SomeInterface {virtual int foo(int)  0;virtual int bar(string)  0; };MockSomeInterface mock;When(Method(mock,foo)).Return(0);SomeInterface i  mock.get();// Production code i.foo(1);// Verify method mock.foo was invoked. Verify(Method(mock,foo));// Verify method mock.foo was invoked with specific arguments. Verify(Method(mock,foo).Using(1));用doctestFakeIt两个header only的库就可以完美替代gtest了。那么还有一个就是benchmark了google有一个benchmark库也是需要编译/安装的有没有什么现代C的benchmark库来替代google 的benchmark库呢当然有比如nanobench。现代C benchmark库nanobench(https://github.com/martinus/nanobench)也是C11写的header only的库使用起来也很简单包含头文件即可。#define ANKERL_NANOBENCH_IMPLEMENT #include nanobench.hint main() {double d  1.0;ankerl::nanobench::Bench().run(some double ops, [] {d  1.0 / d;if (d  5.0) {d - 5.0;}ankerl::nanobench::doNotOptimizeAway(d);}); }测试结果|               ns/op |                op/s |    err% |          ins/op |          cyc/op |    IPC |         bra/op |   miss% |     total | benchmark |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:---------- |                7.52 |      132,948,239.79 |    1.1% |            6.65 |           24.07 |  0.276 |           1.00 |    8.9% |      0.00 | some double ops总结用现代C测试工具链doctestFakeItnanobench, 可以完美地替代gtest/gmock和google bench没有任何依赖无需安装直接包含头文件就可以用非常容易集成和使用是时候抛弃google test和google bench了!*声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。戳“阅读原文”我们一起进步
http://www.yutouwan.com/news/162667/

相关文章:

  • 网站开发是什么意思啊儋州网站建设
  • 长沙网站搭建关键词排名国外搜索关键词的网站
  • 盐山建网站31省份新增本土427 1662
  • 网站模板被抄袭怎么办如何选择邯郸网站制作
  • 网站建设方案免费ppt怎么做流程图
  • 文具用品网站设计规划书福州搜索优化公司
  • 有好的网站推荐一下吗wordpress 手机悬浮
  • 网站建设业务的延伸性php 公司网站源码
  • 唐山自助建站软件中国建设门户网登录
  • 南昌加盟网站建设珠海市规划建设局网站
  • 普同网站跟营销型网站的区别如何注册一个企业邮箱
  • c2c网站的主要功能石家庄智能网站建设
  • 苏州建设网站哪家好网站静态页面做网站
  • 哪个网站可以做兼职笔译镇江网页设计师招聘
  • 个性化定制网站有哪些wordpress中记录博客发展的插件
  • 无锡网页网站制作公司做有网被视频网站吗
  • 家具网站素材上海百度优化
  • 企业网站建设费计入视频剪辑培训班一般学费多少
  • 自己做网站有什么意义响应式网站跟自适应网站的区别
  • 网站建设价格明细公众号开发 表格
  • 新网 主办网站已备案wordpress 注册邮件插件
  • 做 cad效果图网站做淘宝网站怎么弄的
  • 临沂企业建站系统模板网泰网站建设网络
  • 海南建设网站公司湖北专业的网瘾戒除学校如何教育
  • 建设企业网站收费吗企业建设网站的目的和意义
  • 贵州有网站的企业网站的建设需要多少
  • 市场营销策略的内容盐城网站优化价格
  • cms大型门户网站 源码网站怎么做移动端适配
  • 网站404页面设置企业邮箱申请域名
  • 网站建设安全技术怒江州住房和城乡建设局网站