查询分析器中开发代码测试检查_MySQL
如果您像我一样,则可能已经花费了很多时间在查询分析器中开发代码。在您对代码感到满意之后,可以立即对开发服务器上的测试数据库运行一个或两个专设 测试。如果看起来没有什么问题,您便可以将代码投入生产。如果这是一段关键代码,或者该代码较为复杂,则您可能会执行更多的检查,以避免后验剖析。甚至在这种情况下,您也可能屏息以待。www.chinai tp 采集 ow er.comd1nHRZf
这就是我在大部分职业生涯中所采用的编码方式。哦,有时我会存储测试查询以供将来使用,这通常是因为总裁/CEO/CIO/部门经理习惯于大约每周就改变一下他或她的要求。但是,除此以外,我不会再做什么。我通常在查询分析器或它的 Oracle/Access/FoxPro 等效工具外部用专设 查询进行测试。更高强度的测试需要使用查询分析器调试器。在绝望的情形下,需要使用 PRINT 语句。www.chinai tp 采集 ow er.comd1nHRZf
目前存在 一种更好的方式。www.chinai tp 采集 ow er.comd1nHRZf
超越专设 测试www.chinai tp 采集 ow er.comd1nHRZf
当我的 SIL 部门采用极限编程 (XP) 时,我们还采用了该方法论的单元测试部分,而它们两者都使我成为更出色的开发人员。但是,即使您不在 XP 环境中工作,您仍然可以从 XP 风格的单元测试中获益。 www.chinai tp 采集 ow er.comd1nHRZf
单元测试不同于接受测试。单元测试用于测试较小的代码块(例如,存储过程),而接受测试更多地涉及到用户是否可以接受 UI。以下是我发现的单元测试的五个优点:www.chinai tp 采集 ow er.comd1nHRZf
? 它们能够找出应该承担责任的当事人。您是否收到过电子邮件,告诉您应该修复程序错误,而这实际上是其他某个人所作更改的副作用?好,如果您具有一些零散的测试查询,请将它们包装到可以定期运行(或许是在晚上)的存储过程中。请确保在单元测试失败时能够生成电子邮件。 www.chinai tp 采集 ow er.comd1nHRZf
? ;生成库不需要花费很长时间。每个存储过程和每个存储函数都应当具有为它编写的测试,而触发器也应该如此。如果这听起来有些苛刻,那么请想一想,能够在问题到达生产服务器之前捕捉到它,从而拯救您自己,将会是一种多么好的感觉。如果您具有大量旧式代码,那么为每个单元编写测试可能需要多年的工作,并且您也不能仅仅为了编写测试而停止新的开发工作。但是,您可以为每段新代码编写测试,也可以为您修改的每个过程编写测试。用不了多长时间,您就会为关键的旧式代码和新代码编写众多的测试。 www.chinai tp 采集 ow er.comd1nHRZf
? 轻松创建准确的代码文档。每个过程或函数都应当用不同的参数组合调用。这不仅能够确保代码按预期方式工作,而且还提供了有关您的工作的最新而准确的文档。另外一个编码员只需查看您的测试,就可以了解对您的过程进行调用的示例。谁知道呢?某一天,这另一个编码员可能就是您自己。 www.chinai tp 采集 ow er.comd1nHRZf
? 它们迫使您预先进行一点儿思考和计划。您应当在编写实际的过程或函数之前编写自己的单元测试。“什么?”您说,“我抗议!我们如何为尚未进行编码的东西编写测试?” www.chinai tp 采集 ow er.comd1nHRZf
? 有一个很老的笑话,它讲的是:有一个经理说:“我将弄清楚他们需要什么。其余的人开始编码。”那么,编码员在知道他们需要编写什么之前是无法开始工作的,不是吗?当您首先编写测试时,您将被迫考虑在开始编写该过程之前,您希望该过程完成什么工作。 www.chinai tp 采集 ow er.comd1nHRZf
? 它们确实可以节省您的时间。开发人员经常抱怨,编写测试需要花费比编写实际过程更多的时间。有时的确如此。但是请考虑以下情况:我最近接受了一项任务,即,修改我曾经遇到过的最难的存储过程之一。它是旧式代码,但是我仍然首先编写了测试。它花费了我几天的时间才完成,部分原因在于对该过程所施加的要求。实践证明,出于我刚才列出的所有原因,该测试非常重要,并且当我必须重新编写该过程以改善性能时,它变得弥足珍贵。 www.chinai tp 采集 ow er.comd1nHRZf
? 单元测试显示重新编写的过程中存在大量错误,而我能够很快地找到每个错误的根源,所花费的时间只占不使用单元测试时的几分之一。然后,当我认为已经完成该任务时,模糊测试失败了。主循环中的变量之一存在缺陷。如果代码以这种状态发布到生产环境中,那么这将是一个难以捕获的程序错误。最终,我以比采用其他方式更快的速度完成了这项任务。 www.chinai tp 采集 ow er.comd1nHRZf
如何编写 T-SQL 单元测试www.chinai tp 采集 ow er.comd1nHRZf
在我告诉您有关 T-SQL 测试框架的内容之前,首先需要提醒您注意两个非常基本的原则:www.chinai tp 采集 ow er.comd1nHRZf
? 第一,您需要一个具有良好测试数据的数据库。我用“良好数据”表示来自现实世界的真实数据。无论您是一个多么优秀的程序员,都无法充分地为应用程序仿造数据。即使要替换的旧式系统由纸张组成,也要找一位数据录入员来在某些表中输入数据。完成获得真实数据所需的工作。[尽管如此,仍然存在测试数据生成器。请参见本期中我的提示“生成测试数据”— 编者]www.chinai tp 采集 ow er.comd1nHRZf
? 第二,不应当针对生产数据库进行开发。您应当具有一个开发或测试数据库,以便满足您自己的需要。过去,当我在 Oracle 进行开发时,我曾经花费了一周的时间将开发数据库放在一个陈旧的服务器上。SQL Server 开发人员没有这样的借口。 www.chinai tp 采集 ow er.comd1nHRZf
在为开发数据库配备良好的数据以后,您需要某种框架以便运行测试。您可以编写自己的框架,但是为什么要这么做呢?已经有一个可用的框架了。www.chinai tp 采集 ow er.comd1nHRZf
TSQLUnit 简介www.chinai tp 采集 ow er.comd1nHRZf
TSQLUnit 是 T-SQL 的一个开放源码单元测试框架,它由 Henrik Ekelund 编写,并且可以从 http://sourceforge.net/projects/tsqlunit 获得。以下是一个有关我如何使用它的示例。www.chinai tp 采集 ow er.comd1nHRZf
我的 TSQLUnit 测试采用了类似的三部分模式:1) 单元测试设置,2) 执行目标过程,和 3) 检查结果。www.chinai tp 采集 ow er.comd1nHRZf
在单元测试设置过程中,我经常进行检查,以确保没有人趁我不注意时破坏了我的数据:www.chinai tp 采集 ow er.comd1nHRZf
DECLARE @nId INT, @nNewId INT a?”- @nNewId is for later
SELECT @nId = [ID] FROM MyTable
WHERE MyField = 'whatever'
IF @nId IS NULL -- or @@ROWCOUNT = 0
EXEC tsu_failure 'The data has changed.
'whatever' couldn't be found'
IF 块用于检查预期的记录。如果找不到该记录,则测试会失败,并且会生成错误信息。测试框架移动至下一个单元测试。您不需要在失败消息字符串中使用该单元测试的名称,因为当测试失败时,TSQLUnit 将为您命名它。www.chinai tp 采集 ow er.comd1nHRZf
现在,我调用将要编写的存储过程:www.chinai tp 采集 ow er.comd1nHRZf
EXEC CreateMyTableNewRec @nId, @nNewId OUTPUT
正如您看到的那样,我已经确定了需要来自这一新过程的输出参数。在检查结果的过程中,我确保输出参数确实填充了某些内容:www.chinai tp 采集 ow er.comd1nHRZf
IF @nNewId IS NULL
EXEC tsu_failure
'A new record was not created for table MyTable.'
我可以进一步检查该值,以查看新记录是否是按照我希望的方式创建的。www.chinai tp 采集 ow er.comd1nHRZf
每个 TSQLUnit 测试本身都是一个存储过程。清单 1 显示了在将上述所有代码段放在一起时所具有的样子:www.chinai tp 采集 ow er.comd1nHRZf
清单 1. T-SQL 的完整单元测试。www.chinai tp 采集 ow er.comd1nHRZf
CREATE PROCEDURE ut_MyTable_NewRec
AS
--== Setup ==--
DECLARE @nID INT, @nNewId INT
SELECT @nId = ID FROM MyTable
WHERE MyField = 'whatever'
IF @nId IS NULL -- or @@ROWCOUNT = 0
EXEC tsu_failure 'The data has changed.
'Whatever' couldn't be found'
--== Execute ==--
EXEC CreateMyTableNewRec @nId, @nNewId OUTPUT

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

이 AI 지원 프로그래밍 도구는 급속한 AI 개발 단계에서 유용한 AI 지원 프로그래밍 도구를 많이 발굴했습니다. AI 지원 프로그래밍 도구는 개발 효율성을 높이고, 코드 품질을 향상시키며, 버그 발생률을 줄일 수 있습니다. 이는 현대 소프트웨어 개발 프로세스에서 중요한 보조자입니다. 오늘 Dayao는 4가지 AI 지원 프로그래밍 도구(모두 C# 언어 지원)를 공유하겠습니다. 이 도구가 모든 사람에게 도움이 되기를 바랍니다. https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot은 더 빠르고 적은 노력으로 코드를 작성하는 데 도움이 되는 AI 코딩 도우미이므로 문제 해결과 협업에 더 집중할 수 있습니다. 힘내

Furmark에 대해 어떻게 생각하시나요? 1. 메인 인터페이스에서 "실행 모드"와 "디스플레이 모드"를 설정하고 "테스트 모드"도 조정한 후 "시작" 버튼을 클릭하세요. 2. 잠시 기다리면 그래픽 카드의 다양한 매개변수를 포함한 테스트 결과가 표시됩니다. Furmark는 어떻게 자격을 갖추었나요? 1. 푸르마크 베이킹 머신을 사용하여 약 30분 동안 결과를 확인합니다. 기본적으로 85도 정도, 최고 온도는 87도, 실내 온도는 19도입니다. 대형 섀시에 섀시 팬 포트 5개 전면 2개, 상단 2개, 후면 1개로 구성됐으나 팬은 1개만 설치됐다. 모든 액세서리는 오버클럭되지 않습니다. 2. 정상적인 상황에서 그래픽 카드의 정상 온도는 "30-85℃" 사이여야 합니다. 3. 주변온도가 너무 높은 여름에도 정상온도는 "50~85℃"

12306 티켓 예매 앱의 최신 버전을 다운로드하세요. 모두가 매우 만족하는 여행 티켓 구매 소프트웨어입니다. 소프트웨어에서 제공되는 다양한 티켓 소스가 있어 매우 편리합니다. - 실명인증으로 온라인 구매가 가능합니다. 모든 사용자가 쉽게 여행티켓과 항공권을 구매하고 다양한 할인 혜택을 누릴 수 있습니다. 또한 사전에 예약하고 티켓을 얻을 수도 있습니다. 호텔을 예약하거나 차량으로 픽업 및 하차할 수도 있습니다. 한 번의 클릭으로 원하는 곳으로 이동하고 티켓을 구매할 수 있어 여행이 더욱 간편해지고 편리해집니다. 모든 사람의 여행 경험이 더욱 편안해졌습니다. 이제 편집자가 온라인으로 자세히 설명합니다. 12306명의 사용자에게 과거 티켓 구매 기록을 볼 수 있는 방법을 제공합니다. 1. 철도 12306을 열고 오른쪽 하단의 My를 클릭한 후 My Order를 클릭합니다. 2. 주문 페이지에서 Paid를 클릭합니다. 3. 유료페이지에서

Xuexin.com에서 내 학업 자격을 어떻게 확인하나요? Xuexin.com에서 학업 자격을 확인할 수 있습니다. 많은 사용자가 Xuexin.com에서 학업 자격을 확인하는 방법을 모릅니다. 다음으로 편집자는 Xuexin.com에서 학업 자격을 확인하는 방법에 대한 그래픽 튜토리얼을 제공합니다. 유저들이 와서 구경해 보세요! Xuexin.com 사용 튜토리얼: Xuexin.com에서 학업 자격을 확인하는 방법 1. Xuexin.com 입구: https://www.chsi.com.cn/ 2. 웹사이트 쿼리: 1단계: Xuexin.com 주소를 클릭합니다. 위의 홈페이지에 들어가려면 [교육 쿼리]를 클릭합니다. 2단계: 최신 웹페이지에서 아래 그림의 화살표와 같이 [쿼리]를 클릭합니다. 3단계: 새 페이지에서 [학점 파일에 로그인]을 클릭합니다. 4단계: 로그인 페이지에서 정보를 입력하고 [로그인]을 클릭합니다.

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

Go 언어 개발 모바일 애플리케이션 튜토리얼 모바일 애플리케이션 시장이 지속적으로 성장함에 따라 점점 더 많은 개발자가 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 모색하기 시작했습니다. 간단하고 효율적인 프로그래밍 언어인 Go 언어는 모바일 애플리케이션 개발에서도 강력한 잠재력을 보여주었습니다. 이 기사에서는 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 자세히 소개하고 독자가 빠르게 시작하고 자신의 모바일 애플리케이션 개발을 시작할 수 있도록 특정 코드 예제를 첨부합니다. 1. 준비 시작하기 전에 개발 환경과 도구를 준비해야 합니다. 머리

새로운 판타지 요정 MMORPG '주선2'의 '무작용 테스트'가 4월 23일 출시된다. 원작으로부터 수천 년이 지난 주선 대륙에서는 어떤 새로운 요정 모험 이야기가 펼쳐질 것인가? 육계선불세계, 불멸수련을 위한 전임 학원, 불멸수련의 자유로운 삶, 불멸세계의 온갖 즐거움이 불멸친구들이 직접 탐험하는 것을 기다리고 있습니다! 이제 'Wuwei 테스트' 사전 다운로드가 공개되었습니다. 요정 친구들은 공식 웹사이트에 접속하여 다운로드할 수 있습니다. 서버가 출시되기 전에는 게임 서버에 로그인할 수 없습니다. 사전 다운로드 및 설치 후에는 활성화 코드를 사용할 수 있습니다. 완성 됐습니다. "Zhu Xian 2" "Inaction Test" 개장 시간: 4월 23일 10:00 - 5월 6일 23:59 Zhu Xian의 정통 속편 "Zhu Xian 2"의 새로운 요정 모험 장은 "Zhu Xian" 소설을 기반으로 합니다. 원작의 세계관을 바탕으로 게임 배경이 설정되었습니다.

빠르고 효율적인 프로그래밍 언어인 Go 언어는 백엔드 개발 분야에서 널리 사용됩니다. 그러나 Go 언어를 프런트엔드 개발과 연관시키는 사람은 거의 없습니다. 실제로 프런트엔드 개발에 Go 언어를 사용하면 효율성이 향상될 뿐만 아니라 개발자에게 새로운 지평을 열어줄 수도 있습니다. 이 기사에서는 프런트엔드 개발에 Go 언어를 사용할 수 있는 가능성을 살펴보고 독자가 이 영역을 더 잘 이해할 수 있도록 구체적인 코드 예제를 제공합니다. 전통적인 프런트엔드 개발에서는 사용자 인터페이스를 구축하기 위해 JavaScript, HTML, CSS를 사용하는 경우가 많습니다.
