首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在数据库而不是假存储库上运行测试是不好的做法吗?

在数据库而不是假存储库上运行测试是不好的做法,这是因为在实际生产环境中,数据库通常是一个单独的服务器或集群,与应用程序服务器分开运行。因此,在测试过程中直接使用数据库可能会导致以下问题:

  1. 性能问题:在测试过程中,应用程序可能会遇到数据库性能瓶颈,导致测试结果不准确。
  2. 数据安全问题:在测试过程中,应用程序可能会误操作数据库,导致数据丢失或损坏。
  3. 稳定性问题:在测试过程中,应用程序可能会对数据库造成不必要的压力,导致数据库服务不稳定。

因此,为了避免这些问题,最佳实践是在测试过程中使用假存储库,而不是实际的数据库。假存储库是一个轻量级的存储库,专门用于测试目的,可以模拟实际数据库的行为和响应,但不会对实际数据库造成影响。使用假存储库可以确保测试过程的稳定性和准确性,同时也可以保护实际数据库的安全性。

推荐的腾讯云相关产品:

  1. 云存储:腾讯云提供了多种云存储服务,包括对象存储、块存储、文件存储等,可以满足不同应用场景的存储需求。
  2. 数据库服务:腾讯云提供了多种数据库服务,包括关系型数据库、非关系型数据库、内存数据库等,可以满足不同应用场景的数据存储需求。
  3. 云测试:腾讯云提供了云测试服务,可以帮助开发者快速、高效地进行测试,确保应用程序的质量和稳定性。

产品介绍链接地址:

  1. 云存储:https://cloud.tencent.com/product/cos
  2. 数据库服务:https://cloud.tencent.com/product/cdb
  3. 云测试:https://cloud.tencent.com/product/tci
相关搜索:在单元测试中有多个断言是不好的做法吗?在枚举类型上使用std::max是不好的做法吗?在头文件中定义所有库是不好的做法吗?在数据/存储库层获取用户/租户Id是不好的做法吗?Java:在不同的库中使用相同的包名是不好的做法吗?在package.json中使用'*‘而不是某个版本的库'~','^’是一种很好的做法吗?在数据库中存储UI逻辑是一种好的做法吗?使用存储在缓存/存储中的数据,而不是数据库为什么在一个请求中建立多个数据库连接是不好的做法?Spark在数据库上运行过滤器,而不是在spark数据帧上运行将SQL查询存储在数据库中是一种好的做法吗?在数据库中存储身份验证会话是一种好的做法吗?是否可以在serializeUser而不是deserializeUser上查找用户的数据库?在迭代器上使用for..of循环而不是iterable进行迭代是合法的吗?我可以强制heroku在http而不是https上运行我的应用吗?nodejs将批处理数据存储在WildFly上Jberet的NoSQL数据库中,而不是文件系统中Laravel中的测试-每个文件只运行一次数据库迁移,而不是为每个单独的测试运行一次Mongodb Compass连接到本地数据库,而不是连接到本地运行在EC2实例上的远程数据库当我通过泛型传递实体时,为什么属性是重复的,而不是所需的存储在数据库中?SQL Server :相同的存储过程在1个数据库上运行良好,但在第2个数据库上运行速度较慢
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

我所知道的那点微服务

你可以参照以下的内容来考虑自己的网关规范到底是什么样子: 你真的知道你喜欢REST而不是RPC的原因吗? API负载均衡 只要涉及到服务实例的选择都要用到负载均衡。...过去在单体应用中,基本上是围绕“一个”数据库来做文章,即使数据的物理分布分散在一个以上节点上。但在微服务下,却有可能一个微服务就独占一个数据库。...你真的知道你喜欢REST而不是RPC的原因吗? 微服务与容器 我们这里说到容器,无非就是为了标准化。...如果说在单体应用中,关系型数据库基本上还是处于统治地位;那在微服务架构中,底层存储变得多样,而且替换和迁移变得更容易。...但在微服务的架构下,也许NoSql数据库能够为你在某一些特定的场景下提供更高效的读取或更强大的存储能力,多了选择,何乐而不为呢?

690101

软件方法(下)第8章分析之分析类图—知识篇Part10-审查类和属性2

以下做法是不好的: (1)在“人员”类中放上多个属性“手机1”、“手机2”、“手机3”……,如图8-89。...图8-89 错误:放上多个属性 这样的做法相当于把抽象级别降到了对象级别,或者用关系数据库建模的说法,这是违反第一范式的。...如果这样的做法是好的,那不如更进一步。各个属性也不用分了,就一个字符串。还可以再进一步,类也不用分了,也串在一起……持久存储或网络传输时的序列化不就是这样干的吗?...根源就在于软件是人做的,人脑的容量和运行速度有限,否则就不用理得那么清楚了,直接对计算机下二进制指令不好吗?...[单选]在某个系统中有一个“电子邮箱”类,它的对象用关系数据库存储,放在数据库的“电子邮箱”表中。

39930
  • WAF误报指标控制怎么做;如何保护本地信息安全 | FB甲方群话题讨论

    A13: 特别现在行情不好,和业务强关联的,谨慎一点。 A14: 矛盾上移吧,WAF误报是无解的问题,要么找到的全部例外,要么某一项不检查,但是不开拦截要WAF还干嘛,靠人24小时去盯日志吗?...其次初期上WAF,开阻断的时候建议上些边缘性的业务,通过内部模糊测试,和外部流量的验证后。确定规则误报,等误报率下去,一般厂是没这个能力优化的,乙方的WAF更是标品,不可能专门针对你们家去优化的。...A32: 阻断性质的安全设备都存在这个问题。这也是RASP这个东西不好落地的原因。WAF是等保要求的,所以没办法,RASP不是,所以安全设备大多数是做的入侵检测,不是入侵阻断。...基于HTTP响应数据、延迟、侧信道数据(带外通道),只要响应数据是假的,攻击者会产生误判。 A40: 拟态防御和正常的攻击防御不都是一个样吗?只不过换了个名词好听一点,实际没啥区别。...本期观点总结 本期话题讨论了切割WAF时的误报率,虽然大多认为业务对假阳性阻断是零容忍,一般没有硬性的标准,而取决于业务能够承受的拦截和风险程度。

    26220

    数据科学家面试常见的77个问题

    13、对于你喜欢的统计软件告诉你喜欢的与不喜欢的3个理由。 14、SAS,R, Python, Perl语言的区别是? 15、什么是大数据的诅咒? 16、你参与过数据库与数据模型的设计吗?...25、(在内存满足的情况下)你认为是100个小的哈希表好还是一个大的哈希表,对于内在或者运行速度来说?对于数据库分析的评价? 26、为什么朴素贝叶斯差?你如何使用朴素贝叶斯来改进爬虫检验算法?...30、在SQL,Perl, C++, Python等编程过程上,待为了提升速度优化过相关代码或者算法吗?如何及提升多少?...57、是假阳性好还是假阴性好? 58、你熟悉价格优化、价格弹性、存货管理、竞争智能吗?分别给案例。 59、Zillow's算法是如何工作的?...76、你觉得下一个20年最好的5个预测方法是? 77、你怎么马上就知道在一篇文章中(比如报纸)发表的统计数字是错误,或者是用作支撑作者的论点,而不是仅仅在罗列某个事物的信息?

    1.4K60

    提前想好答案 数据分析师面试常见的77个问题

    13、对于你喜欢的统计软件告诉你喜欢的与不喜欢的3个理由。 14、SAS, R, Python, Perl语言的区别是? 15、什么是大数据的诅咒? 16、你参与过数据库与数据模型的设计吗?...25、(在内存满足的情况下)你认为是100个小的哈希表好还是一个大的哈希表,对于内在或者运行速度来说?对于数据库分析的评价? 26、为什么朴素贝叶斯差?你如何使用朴素贝叶斯来改进爬虫检验算法?...30、在SQL, Perl, C++, Python等编程过程上,待为了提升速度优化过相关代码或者算法吗?如何及提升多少?...57、是假阳性好还是假阴性好? 58、你熟悉价格优化、价格弹性、存货管理、竞争智能吗?分别给案例。 59、Zillow’s算法是如何工作的?...76、你觉得下一个20年最好的5个预测方法是? 77、你怎么马上就知道在一篇文章中(比如报纸)发表的统计数字是错误,或者是用作支撑作者的论点,而不是仅仅在罗列某个事物的信息?

    1.9K61

    教你用Mock框架编写单元测试

    在我参与的项目中,有些项目完全缺失单元测试,而大部分开发者倾向于在main方法中直接编写测试代码,这实际上反映了开发者对单元测试的忽视。...,因为它依赖于当前时间,而当前时间是不确定的,取决于你运行单元测试的时机。...第三个问题:被测试类依赖 Spring 框架,依赖数据库。如何在运行单元测试时启动 Spring 容器和数据库呢?这三个问题困扰了很多开发者。如果你也有这样的疑惑,下面可要认真听了。...第三,单元测试不能够启动 Spring 容器,不能连接数据库,启动 Spring 容器和连接数据库是集成测试阶段所需要的。现在我们解决了这三个问题,再来想想如何写这个单元测试。...最后,我想请你思考一个问题:所有的代码都需要测试吗?既然单元测试可以提升代码的正确性,那是不是应该为所有代码都编写单元测试呢?通常情况下,不是这样的。

    13510

    Python情感分析:鹿晗的粉丝们究竟原谅他了吗?

    国庆长假的最后一天,鹿晗在微博上公开宣布和关晓彤的恋情。消息来得太突然,不仅粉丝圈里炸了,顺带连微博服务器也给炸了。在此心疼新浪运维工程师一秒,放个假都不能省心。...得到数据之后,通过正则或 bs4 对信息进行提取(我们的代码里用了正则),将评论内容文本存入数据库。 2....从结果来看,0、1 两端和中间 0.5 的数量最多,整体上较为平衡,稍稍偏积极一些。 可真的是这样吗?...后来进一步了解发现,snownlp 的默认训练语料库是针对网上商品的购买评价,将其得出的模型用在此微博评论的分析上并不是很准确。...在使用之前,我们也将前文的几条热评测试了一下: 我们来挑几热门评论尝试下: 评论 情感值 大家觉得是假的点赞 0.52 大家觉的鹿晗与关晓彤不配的请点赞。 0.53 一定是电视剧的宣传。一定是。

    99370

    MYSQL Rewriter plugin 我那什么拯救你,垃圾系统

    从SQL 语言, DB 和 开发人员之间对SQL的撰写的目的和本质的理解就有不同,一个是要以逻辑为基础满足业务需求即可,性能方面的需求这变得不是核心人物,而DB 人员则对SQL的撰写和优化作为一个核心的目的...如何解决这样的矛盾,其实日常无非几个方法 1 DB 懂得业务并且在项目之初就介入,在表设计和优化方前期就下功夫,避免开发和DB之间的矛盾,当然能做到这样的单位少之又少,原因很复杂,但大多不是技术上的问题.... 2 在硬件上面做文章,软件设计的不好,硬件上给力,什么SSD ,大内存, 都给上,这样双方的矛盾也能缓解,所谓弄用钱办的事情,都不是事情,但对于项目和开发,以及DB,都不是什么好事,这些人都没有进步...在确认以上信息后,下面就可以进行一些简单的样例 1 经常有人直接对数据库中的大表进行操作,这样的操作直接影响了系统的安全性,属于需要防范和进行取消的操作,但实际上即使有了相关的数据库审核和数据库的规范...显然不是的我们稍加处理,让他这样的操作也不可以,当然事先要知道如此逻辑在业务中是可以通过的. ?

    27710

    生物学家与计算机科学家合作的十条原则

    记住,你们合作是为了相互补充,而不是为了竞争,所以你的合作者对你的学科没有深入的了解实际上可能是一件好事;它使他们成为了他们的学科的专家。...规则4:以便于协作的方式描述您的数据 CS有一个完整的领域来处理如何在数据库中存储信息,但是您现在可以做一些事情来促进其他人重用您的数据。...虽然有些事情您不应该妥协,比如记录您的代码,但是您的脚本真的有必要在5分钟而不是15分钟内完成吗?此脚本多久运行一次,由多少人运行?如果您加快速度,它们将累计节省多少时间?...假设您决定确实要加快代码的速度。有些并行化是自然且相当简单的,例如按染色体运行脚本。在这种情况下,如果底层数据在统计上是独立的,通常没有理由“不”并行运行它。...规则6:考虑概念和受众,而不是编程语言 本质上,CS是关于概念和抽象的,而不是关于任何编程语言的。许多计算机科学家并不真正关心在任何特定语言中的实现。在与计算机科学家合作时,不要强求您的实现想法。

    63610

    关于Android的UI测试

    Robolectric是一个很优秀的Android测试框架,它提供了一个Android框架的stub,这样测试运行时实际上是在JVM上运行,而不是在Android平台(比如Robotium和Instrumentation...策略2:使用伪服务器做封闭UI测试 这个策略中,你可以通过假的后台服务器来避免网络请求,以及其他外部依赖。技术上,你就需要在app本地提供返回数据了。...于是这是,你的E2E测试就分为了服务器测试,客户端测试和集成测试。 ? 现在这样的解决方案,你需要自己维护伪服务器,本地数据库和tests了。 下面这是E2E 测试的示例图: ?...在instrumentation test框架中,测试用的apk文件和测试时运行的app,是在同一个进程下面,所以测试代码可以调用app代码。...总结: 不要用E2E测试来代替UI测试。更好的做法是用单元测试 + 集成测试 + UI测试。

    1.3K50

    不懂Python学习如何下手?看完本文您能知道60%

    或许你在漫天的宣传中看到了这些: 接近英语的简单语法; 开发环境简单,能打字就能写代码; 众多的第三方库; 解释执行,不需要编译; 跨平台,方便移植; 但是作为一个负责任的假程序媛,要跟你说的是:就算再简单的语言...但是建议大家在学好这个语言的同时,要学第二门语言,这样未来对大家有好的发展。 第二环节:Python工程师在企业里面的定位是什么? 四个重要的定位:验证算法、快速开发、测试运维、数据分析。...在结束这个部分之前,大家有没有一个疑问:为什么爬虫没有中重点讲? 其实这里给大家重点说一下,如果你要学好Python,仅仅停留在爬虫上,这个是很不靠谱的。...熟悉关系型数据库的使用与基本设计优化方法,了解常见的 NoSQL 数据库如MongoDB, Redis等; 6,良好的编码风格及测试习惯 加分项: 在 GitHub 上有开源项目 岗位定义:Python...第三层:数据库操作 数据库操作:SQL、Nosql,数据的储存和处理,就是常见的增删改查。

    93450

    Redis 的 7 个错误用法

    一些时候我们没有阅读文档说明,只是按部就班的把事情做完,而不经意地使用了最困难的方式来做这件事。 因此,让我们采用另一种方法:让我们着眼于最坏的做法,而不是研究最佳做法。...这种设计选择是看起来像做了某件事但实际上却做了另一件事。值得庆幸的是,尽管这种使用方式变得不那么普遍了,但 Redis 仍保有使用 SELECT 命令在不同数据库之间切换的功能。...在数据库 0 上运行 KEYS 命令仍会阻塞数据库 9 上的操作。实际上,您似乎可以在每个数据库上运行独立的工作负载,但实际上它们并不是完全独立的。 简直是不可理喻,但这不是最糟糕的实践,对吗?...但是,如果将访问集中到经常访问的几条数据中,则会创建所谓的热键问题。在 Redis 集群中,键实际上关联数据在集群中存储位置。数据基于键的哈希值而存储在一个单一的位置中。...7.将无持久化的 Redis 实例作为主数据库运行 Redis 通常用作应用程序的主要存储引擎。与将 Redis 用作缓存不同,将 Redis 用作主数据库需要开启两个额外的功能才能有效。

    92920

    防御性编程

    它只是一种好的做法,是编写正确代码的一部分。 测试 测试你的代码并不是防御,而只是开发工作的另一个典型部分。...测试工作不是防御性的,这项工作可以验证代码现在是正确的,但不能保证代码在经历将来的修改之后不会出错。即便是拥有了世界上最好的测试工具,也还是会有人对代码进行更改,并使代码进入过去未测试的状态。...— 每种防御性的做法都需要一些额外的工作。为什么要做这些工作呢?你需要做的已经够多的了,不是吗?只要确保人们正确地使用你的代码就可以了。如果他们使用的方式不正确,那么任何问题也都是他们自己造成的。...运行环境没有为程序提供足够的服务;外部程序库运行失误,不遵从你所依赖的接口协议; 4、编码的目标是清晰,不只是简洁      简单就是一种美,不要让你的代码过于复杂。...assert() 是个定义在 中的宏, 用来测试断言。一个断言本质上是写下程序员的假设, 如果假设被违反, 那表明有个严重的程序错误。

    1.4K80

    对着他兄弟,某数据库创业公司创始人兼CEO说。。。

    马克吐温道歉,并改成了某些候选人不是婊子养的。 CMU的教授应该说,某些公司的数据库不是MySQL或者Postgres的简单克隆就好了嘛。自主可控,懂的都懂。...当然,今天我们说的这家公司,是一家子虚乌有的公司。 为什么不是真实的呢?贾雨村说的好,假不假白玉为堂金做马。 我要是指名道姓的说某某某,我不是和CMU的教授情商一样低了吗?...真的是个子虚乌有的公司,所以我们可以在平行宇宙范围内展开说说。 要说这家公司也真的很牛逼,创始人们虽然从来都没做过数据库。也不知道数据库是啥,但是大牛是一行通行行通啊。...这是好事情啊,很多程序员们觉得做着改变世界的数据库产品,还能够平等的参与公司的发展,多好。 但是资本家的钱也不好拿,投资人拿钱进来是希望泡泡吹起来,而泡泡吹到一定阶段就不只能是很酷很好很牛逼了。...当初牛人来找这些大牛创立的公司,不就是为了能够自由自在的做一些改变世界的事情吗? 老员工想起来,创始人们不是禁止大家叫老板,说互相是兄弟吗?还说可以畅所欲言。

    42820

    软件测试金字塔

    Spring Data为我们提供了一个简单而通用的CRUD存储库实现,我们可以使用它来代替我们自己的实现。它还负责为测试启动内存数据库,而不是像生产中那样使用真正的PostgreSQL数据库。...其次,它证明我们的存储库正确使用了Spring的接线并可以连接到数据库。 为了让你在机器上运行测试变得容易(无需安装PostgreSQL数据库),我们的测试连接到内存中的H2数据库。...除此之外,使用内存数据库是危险的业务。 毕竟,我们的集成测试针对的是不同于生产环境的不同类型的数据库。 继续并自行决定是否更喜欢使用Spring魔术方法和简单的代码,而不是更明确而更详细的实现。...使用端到端测试并针对真实服务的测试实例运行测试而不是使用假服务可以解决此问题,但会使我们依赖于测试服务的可用性。...直接与其他服务的开发人员直接交谈,而不是摒弃过于详细的文档,这不应该太难。毕竟他们是你的同事,而不是第三方供应商,你只能通过客户支持或法律上的防弹合同进行交谈。

    3K61

    我在GitHub 黑市买“水军”:一万颗star只要4000多元,人人都能“一夜爆火”

    然后,Dagster 为该账户设计了个人资料文件,并使用 GitHub REST API(通过 pygithub)和 GitHub Archive 数据库展开了一系列测试。...star 数,还重要吗 “我的前雇主在他们的工作描述和招聘推介中使用了 GitHub stars。他们定期鼓励员工去 GitHub 上为公司的存储库加注星标。...“在我看来,GitHub issues 的一个关键是,如果 GitHub issues 主要由核心团队提出,那不是一个好兆头。您需要来自客户或用户而不是团队的大量问题。...幸运的是,根据 Dagster 团队的研究,从投入产出的情况来看,买 star 行为在 GitHub 上还不是那么普遍,这也体现出开源社区积极向上的整体价值观。...你可以现场聆听国内外产学研大咖讲述云数据库的关键趋势和技术方向,最新思考和最佳实践;还可以体验云原生数据库核心产品技术和行业方案,与大家共同探讨云原生数据库的无限可能。

    1.1K20

    ☞【观点】徐尽欢:我也说说大数据

    一:在Oracle做了六年数据库销售的我从5月份开始内部转到新成立的大数据部门,虽然还没有转完但是已经到新部门上了一个月的班了,如果我说我是Oracle 数据库部门最懂大数据的销售应该没人会反对吧!...另一种是为了建而建,完全没有目的性,我先买一堆硬件一堆存储,然后干什么再说,可能有个初步的需求,到最后发现都不靠谱。...此系统现状是根本运行不起来,数据量太大,经常运行好久,不是系统自己烦了time out了,就是操作人员烦了下班回家了,明早也没看到结果就杀掉操作。反正你可以去各地看看,基本是个瞎掰的系统。...但随着3G4G的不断发展,对不起这个系统必须得用起来,因为已经开始影响语音质量了。还记得当初大家为啥选择中国移动而不是联通吗?那还不是信号好不掉线上网快,反正葛优这么说的。现在呢?...话说回来了,这些大量的网络应用已经大大影响了通话质量,因为带宽被占用严重,所以就想起来了,不是有信令监测系统吗?干嘛吃的?结果发现,原来是聋子的耳朵摆设。为什么摆设呢?数据量太大!

    94460

    Oracle在找死?No Zuo No Die !

    而且伴随着云计算的出现,这些东西用起来也没那么麻烦,有的时候还挺好用的。 于是,今天的现代化互联网企业的架构里面,存储并不是统一的,起码不是关系数据库一家独大。...而Microsoft的做法,在云计算时代是显而易见的,多做几个产品,卖个不同的用户,解决不同的需求。 Oracle也做云计算,虽然没什么人用。...Oracle的想法是我不如增强我的关系数据库,让它大一统,既支持关系数据库,也支持KV存储,也支持流计算,还支持机器学习等等。 问题来了,大一统的数据库是未来的发展方向吗?这个问题,有见仁见智的想法。...坏处就是面面俱到的产品,也就是面面平庸的东西。弄不好成本还要更高。 图灵奖获得者Michael Stonebraker曾经在VLDB发表过论文讨论未来的数据库应用,当然发论文的时候对方还没获图灵奖。...实际上是不是这样呢?在云计算时代,如果大家都在做着一件事情,而一家公司特立独行想走另外一条路的话,这家公司,要么真的牛逼超前,要么是傻逼。 苹果公司显然是在智能机时代证明了自己是真牛逼。

    3.1K50

    大规模MySQL运维陷阱之基于MyCat的伪分布式架构

    这种现象首先导致的就是存储瓶颈,因为MySQL数据库,实质上,还是一个单机版本的数据库,而只要是单机,就必然会遇到的一个问题就是存储问题,因为存储是硬需求,而CPU和内存如果不够的话,只是性能不好,并不会直接否定方案或者架构...而本身这些聚合计算Order By、Group By的处理,本身是数据库的事情,实则还是越俎代庖。 通过SQL语句的变换,实现分布式是不是有点困难?...MyCat这种中间层,代表了宣称分布式数据库的一类使用方式,但这种实现方法实际上都是通过在SQL语句上做文章,从客户端拿到的是SQL语句,给后端数据库的也是SQL语句,但这两个SQL语句是经过变换的,当然这种方法也只能这样...MySQL这种数据库是在互联网领域兴起并被大规模使用的,在比如账务、订单、计费等等关键业务上使用的也不在少数。...解耦的好处可以让你的数据库只干数据库最擅长的事情,它能保证你的数据安全存储,它能保证你的数据高效存取,它能保证你数据并发处理,它能保证你的数据灵活接入,这还不够吗?

    1.5K10

    TP 库太撑就上 AP 库吗?

    TP 太撑上 AP,这几乎是业界的通识,而且也有了多年的成功实践,这还有什么可讨论的吗?...上了 AP 库后数据拆分到了两个库中,而多库混合计算对数据库本身来讲基本上是个不可能的任务,尤其是 AP 库和 TP 库类型不同的时候。...用 HTAP 库也不是个好办法,这类数据库的 AP 能力通常并不足,而且还要求把原来的 TP 库也换掉,风险太大了。这么看来,TP 太撑上 AP,看上去是很美,其实问题多多。那还有别的什么招吗?...整个计算引擎都被内置于 esProc 的 JDBC 驱动包中,而不像数据库那样还需要有个独立服务器进程,esProc 核心包还不到 15M,加上各种第三方数据源驱动也就数百 M,甚至可以在安卓上流畅运行...不过,真正费事的是那些复杂任务(所谓二八原理,80% 的工作量消耗在 20% 较难的事情上),这些 SQL 动不动几百上千行,还会用数据库的特有函数甚至存储过程。

    5600
    领券