乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 206|回复: 14

AutoCAD中的单元测试

[复制链接]

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2011-8-20 00:21:09 | 显示全部楼层 |阅读模式
有人做过将单元测试(测试优先开发)与AutoCAD应用程序相结合的工作吗??
如果是,愿意分享意见吗?
关于
kdub

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

3

主题

28

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2011-8-20 02:13:18 | 显示全部楼层
Gallio发布说明3.0.5
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2011-8-20 03:48:22 | 显示全部楼层

谢谢kaefer...
看来我还有一堆学习要做
问候,
回复

使用道具 举报

3

主题

28

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2011-8-20 05:14:14 | 显示全部楼层
我几乎能够通过引用Gallio.dll和MbUnit.dll以及使用Icarus测试运行器来部署独立测试。除非有一定的研究,否则我不知道如何实现上述技术,更不用说针对AutoCAD绘图数据库设计有意义的测试了。
回复

使用道具 举报

3

主题

28

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2012-6-7 07:26:37 | 显示全部楼层
2kaefer
您可以展示您的单元测试示例(用于AutoCAD)的源代码吗?
问候
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2012-6-7 07:29:09 | 显示全部楼层

对不起,不能。我还是不知道。任何人
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2012-6-7 07:32:50 | 显示全部楼层
我可以使用NUnit和MSTest,但Gallio对我来说并不清楚。我是否正确理解了您的问题:我给出了一个示例,您是否希望在AutoCAD中使用它?
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2014-6-10 08:15:41 | 显示全部楼层
我在Visual Studio 2012的Resharper Test Runner中使用NUnit,如果尝试在测试中使用与 AutoCAD 相关的对象,则会使测试(但不是运行器)崩溃,System.InvalidProgramException:公共语言运行时检测到无效的程序但您可以通过调用将基于 AutoCAD 的属性设置为 null 的构造函数来测试具有 AutoCAD 对象作为属性的类。我使用属性来改进它,这些属性实际上是一个包含AutoCAD对象(RXClass)属性的类,因此这可以向下工作到图层中。我使用带有布尔标志的构造函数进行单元测试,其他构造函数在运行之前调用该标记的构造函数。这意味着你通常在愤怒中寻找的构造函数是你所期望的,单元测试构造函数显示在智能感知中,这就是为什么我有一个明显的名称。I 您可以测试一些 AutoCAD 元素,即由 SDK DLL 处理的 UI 元素。我在测试中使用了一个“组件面板”选项卡,该选项卡根据设置类检查了一些UI元素,并且它工作正常。“处理”,我说了吗?是的,这就是 SDK DLL 与 Visual Studio 设计器一起工作的方式,它们似乎也可以在测试中工作。若要在单元测试中使用 SDK DLL,需要在测试项目中引用它们(呃!),并将“复制本地”设置为 True (wut!)。是的,测试需要在他们自己的项目中进行,但你已经这样做了,对吧?在我下面的示例中,您可能会注意到我使用内部类。您正在测试的类不一定需要公开...但是,如果你想测试内部类,那么你需要在应用程序的AssemblyInfo中添加'[assembly:InternalsVisibleTo(“CADFindReplaceTests”)].cs。Google InternalsVisibleTo,并且还要注意具有后门的运输组件的安全隐患,就像它创建的后门一样。这是一个非常人为的例子,说明我正在谈论什么......using NUnit.Framework;。
使用Lots.Of.Google;。


[测试()]。
[STAThread]。
公共无效Test_Breaks()。
{。
ThingWithAutocadBits thing = new ThingWithAutocadBits(unitTesting); // Bang !。
Assert.Fail(“FAIL”); 你不会走得这么远。
}。


[测试()]。
[STAThread]。
公共无效Test_Runs_But_My_Code_Sucks()。
{。
ThingWithAutocadBits thing = new ThingWithAutocadBits(unitTesting: true);。
Assert.Pass(“#FAIL”); 啊,该死的!没有正义。。
}internal class ThingWithAutocadBits。
{。
内部字符串 ThingName { get; set; }。
internal bool TellMeItsNotTrue { get; set; }。
internal AutoCADObjectOfSomeSorts iBreakThings { get; set; }。

/// 。
此 Ctor 用于单元测试 - 它避免了对 AutoCAD objcts 的依赖。
它总是由默认的 Ctor 调用, 。
/// 。
这里的值并不重要,重要的是它的存在。。
内部搜索选项(布尔单位测试 = 真)。
{。
ThingName = “Nigel”;。
TellMeItsNotTrue = true;。
iBreakThings = null;。
}。


内部 ThingWithAutocadBits() : this (true)。
{。
iBreakThings = Whatever.You.Like.Eh;。
}。
}。
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2014-6-11 09:06:42 | 显示全部楼层
我用Gallio。它工作得很好。
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2015-2-16 22:49:02 | 显示全部楼层
我刚发现https://bitbucket.org/IsaacRodriguez/civilizeddevelopment/src/-这种方法看起来很有趣。与解决关于政治和宗教的战争相比,在VisualStudio中运行任何框架的测试应该相对容易,或者在这里使用框架。这里似乎有一些不错的想法。无法输入…正在阅读。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 04:08 , Processed in 0.156413 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表