乐筑天下

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

AutoCAD中的单元测试

[复制链接]

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2015-2-17 01:58:40 | 显示全部楼层
到底是什么?MSV也可以使用Gallio平台吗?你试过了吗?
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

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

铜币
327
发表于 2015-2-18 19:07:42 | 显示全部楼层
问得好。谢谢你,你让我思考了很多,因为我没有一个即时的“好答案”。
您可以使用该应用程序中的测试运行程序在 AutoCAD 中运行一组需要 AutoCAD 对象的测试。这些测试将是一组不同的测试,而不是在 NUnit 之类的东西中针对没有外部依赖项的代码运行。我越想越觉得这是一个坏主意,主要是因为它与正常的、被接受的做事方式太不一样了。
旧版本的ReSharper为Gallio提供了测试运行器。这没什么大不了的,真的,我不介意使用其他测试运行器。NUnit 的测试运行程序可以运行一批测试,因此我可以构建应用的所有不同版本,然后在 NUnit 中一次运行所有测试。从我所看到的来看,Gallio的测试跑步者看起来不错。
我查看了Gallio的源代码,但我还没有尝试过。我担心的是,发展已经停止了。我可以自己更新它,因为它在github上 https://github.com/Gallio/mbunit-v3/commits/master 但看起来将来会有很多工作。Gallio非常庞大和复杂,很容易变得比我应该从事的项目更多的维护工作。像NUnit和XUnit这样的测试框架仍然非常活跃和流行。流行的框架有更多的支持,代码示例,文档(Gallio的文档已经消失,只在Web Archive上)。
我目前正在考虑使用 http://nsubstitute.github.io/ 来使用伪造的AutoCAD对象。NSubstitute从Interfaces构建假对象,可以通过反编译AutoCAD的托管包装器DLL(我使用Dotpeek)为AutoCAD托管对象构建接口,然后使用ReSharper从要伪造的类中提取接口(Resharper还从类的依赖项中提取接口成员,因此您获得很多成员)。如果它们很简单,那么自己制作接口可能会更容易。
我知道使用外部依赖关系测试代码被单元测试纯粹主义者认为是坏的,但我也想测试这些对象的预期行为。创建类似假DBText的东西将允许我设置其属性,然后测试我的代码是否像我预期的那样使用这些属性。使用假货也可以让我忽略我对测试不感兴趣的任何其他行为......并可能使我从很多acad.exe崩溃中拯救出来。
对于那些在提到反编译AutoCAD DLL时感到紧张的人来说,这是有先例的:http://adndevblog.typepad.com/autocad/2012/08/a-rich-source-of-autocad-net-sample-code.html,也是在 http://through-the-interface.typepad.com/through_the_interface/2010/02/debugging-into-autocads-net-api-layer-using-reflector-part-1.html - 我不是在逆向工程AutoCAD,只是解构它来测试事物。好吧,这就是我的故事。
@Andrey - 我试图在这里保持我的语言清晰,因为我知道你的第一语言不是英语,如果你不清楚,请告诉我。我想听听你对此的看法。
回复

使用道具 举报

3

主题

28

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2015-2-19 14:27:23 | 显示全部楼层
我只是看不到测试任何依赖于AutoCAD的代码成为现实。
它会认为构建假货需要花费很多时间和精力才能像在AutoCAD环境中一样运行,然后进行更改以进行维护,您将没有时间实际使用它。
....
构建所需的假货数量,其设置将更改对象行为的大量系统变量,某些对象需要一定的顺序来分配属性,因此许多不同的上下文等。
回复

使用道具 举报

3

主题

28

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2015-2-19 14:46:28 | 显示全部楼层
@Jeff H,
有必要将独立测试和集成测试分开。我这样做是为了我的一些应用。这需要很多力量和时间,但它给了我对软件质量的信心。
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

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

铜币
327
发表于 2015-2-19 15:48:33 | 显示全部楼层
我知道没有人对AutoCAD扩展测试感兴趣(除了我)。
正如我在之前的消息中所说,有必要将独立测试和集成测试分开。这是通常的惯例。我通过这本书了解到了这一点。这是一本好书。
我更喜欢使用NUnit和Gallio。
我也阅读了它的源代码,并对Gallio用于AutoCAD测试有了一些了解。
这对我来说不是问题,因为源代码是存在的,我知道如何为较新的AutoCAD版本扩展它(我已经练习过了,效果很好)。Gallio目前的能力对我来说很好。
我知道它是什么以及它是如何工作的(书中有关于这方面的资料)。我在测试中也使用它。
这样的测试是不可避免的,也是有用的。
我有这个官方描述,所以我知道是什么。网状反射器。
谢谢您。我理解你。我不是编写AutoCAD extensions测试的专业人员,但是如果你对这个主题感兴趣,我们可以稍后一起发现它。对我来说,为NUnit编写测试AutoCAD、nanoCAD、BricsCAD和任何基于Teigha的应用程序的扩展很有趣。
现在我花时间学习Haskell和WebGL。我很久以前就没给AutoCAD写过代码了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 03:49 , Processed in 0.464066 second(s), 71 queries .

© 2020-2025 乐筑天下

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