AutoCAD中的单元测试
有人做过将单元测试(测试优先开发)与AutoCAD应用程序相结合的工作吗??如果是,愿意分享意见吗?
关于
kdub
**** Hidden Message ***** Gallio发布说明3.0.5
谢谢kaefer...
看来我还有一堆学习要做
问候, 我几乎能够通过引用Gallio.dll和MbUnit.dll以及使用Icarus测试运行器来部署独立测试。除非有一定的研究,否则我不知道如何实现上述技术,更不用说针对AutoCAD绘图数据库设计有意义的测试了。 2kaefer
您可以展示您的单元测试示例(用于AutoCAD)的源代码吗?
问候
对不起,不能。我还是不知道。任何人 我可以使用NUnit和MSTest,但Gallio对我来说并不清楚。我是否正确理解了您的问题:我给出了一个示例,您是否希望在AutoCAD中使用它? 我在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中添加'.cs。Google InternalsVisibleTo,并且还要注意具有后门的运输组件的安全隐患,就像它创建的后门一样。这是一个非常人为的例子,说明我正在谈论什么......using NUnit.Framework;。
使用Lots.Of.Google;。
。
。
[测试()]。
。
公共无效Test_Breaks()。
{。
ThingWithAutocadBits thing = new ThingWithAutocadBits(unitTesting); // Bang !。
Assert.Fail(“FAIL”); 你不会走得这么远。
}。
。
。
[测试()]。
。
公共无效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;。
}。
}。
我用Gallio。它工作得很好。 我刚发现https://bitbucket.org/IsaacRodriguez/civilizeddevelopment/src/-这种方法看起来很有趣。与解决关于政治和宗教的战争相比,在VisualStudio中运行任何框架的测试应该相对容易,或者在这里使用框架。这里似乎有一些不错的想法。无法输入…正在阅读。
页:
[1]
2