我正在按照rspec的思路试验.NET测试框架,并希望为此目的在Visual Studio中实现一个自定义编辑器。
对于外行来说,rspec 是 ruby 的测试框架,测试(或规范)如下所示:
describe Bowling, "#score" do
it "returns 0 for all gutter game" do
bowling = Bowling.new
bowling.hit(0)
bowling.score.should eq(0)
end
end
在 ruby 中,可以将 rspec 测试编写为块嵌套的匿名函数,而无需任何封闭方法或类 - 这由运行时幕后的框架处理。
我想在Visual Studio 2012和/或2013中做一些事情。完整的 C# 测试文件可能如下所示:
using System;
using BowlingApp;
using Specs;
@spec DefaultSpec
Describe(typeof(Bowling), "#score", () => {
It("returns 0 for all gutter game", () => {
var bowling = new Bowling();
bowling.Hit(0);
Expect(bowling.Score).ToEqual(0);
});
});
。其中,@spec
语句指定将在后台生成的"封闭"类型的基类(在本例中为在设计时)。基类还将提供上面例子中使用的Describe
、It
和Expect
方法。
为了使这个测试框架实用,我需要为上述格式定制 VS 编辑器,并带有语法突出显示和智能感知。
是否可以"重新利用"VS 中现有的 C# 编辑器来执行此操作,还是我必须从头开始做所有事情?如果是这样,是否有任何开源工具或框架可以帮助我创建这样的编辑器?
有没有简单的方法可以做到这一点?不。你可以用投影缓冲区做这样的技巧,但真的很难做到正确。