原文地址:My First IronRuby Unit Test Spec For ASP.NET MVC

使用一门DLR语言像IronRuby来建立一个ASP.NET MVC程序是一件很Nice的事情,然而使用DLR语言可不是很自由。

在我们设计中有一些地方是专门针对静态语言的(像属性(Attribute)为基础的过滤器),它在动态语言中就不能工作了。

最理想的我们可以最大限度的减少这种情况的使用,如果我们不能减少,我们就必须确保框架的可扩展性,允许扩展系统如我们可以提供一个DLR友好的功能。

我们怎么识别和减少这类情况呢?设计审查帮助,好像离的很远。因此,在和一些DLR团队成员协作下,我一直在探索用于测试IronBuby的最小规格框架,今晚我写了第一篇测试说明。了解一下它(注意:在require申明的一些行里增加了换行为了适应我的blog文章的宽度)

require File.dirname(__FILE__) + '/../../spec_helper'
require 'System.Web.Abstractions
, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
require 'System.Web.Routing
, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
require 'System.Web.Mvc
, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

describe "Route#<<" do

  it "can create RouteCollection which is empty" do
    rc = System::Web::Routing::RouteCollection.new
    rc.count.should == 0
  end
 
  it "can add route to RouteCollection" do
    rc = System::Web::Routing::RouteCollection.new
    r = System::Web::Routing::Route.new "", nil
    rc.add "route-name", r
   
    rc.count.should == 1
  end

end

下面是结果:

Administrator CWindowsSystem32cmd.exe

Yay!两个测试通过了。

Yeah,这两个测试是非常非常的简单,但,hey,这只是我的第一步。我需要熟悉最小规格的框架。不仅如此,我已经很久没有写Ruby代码了。幸运的是,我有一份The Ruby Way的拷贝,这应该有帮助的。

我可能有更加优先的工作要做,但是有时候需要找一些乐趣给自己。另外,我是在我自己的时间做这些事的。:)