我可以为.NET单元测试使用哪种动态语言?

4
我正在尝试为我的C#代码编写一些复杂的验收测试。我注意到当我编写测试时,我需要进行很多显式转换来满足C#编译器的要求。我喜欢使用像C#这样的静态类型语言在生产代码中获得类型安全,但是对于我的测试,我愿意使用动态类型语言(例如IronPython或IronRuby)来避免所有显式转换。如果我的测试调用一个对象上不存在的方法,那么在运行时失败也没关系(它只是一个失败的测试)。我目前正在使用MS Test作为我的单元测试框架,并且如果可以继续使用它会很方便。哪种基于DLR的动态语言可以与MS Test集成?如果您认为有帮助,请随意建议不同的测试框架。
3个回答

2

我更喜欢使用C#进行单元测试...如果你正在寻找动态语言,可以尝试使用iron-python...


2

谢谢提供的链接。我仍然在寻找一种动态语言,可以集成到 MS Test 中(这意味着它必须支持类型和方法上的 .NET 属性),但如果找不到任何可用的选项,我会考虑使用 RSpec。 - Robert Lewis

2
我建议使用IronPython——其中的优点之一是出色的书籍《IronPython实战》,该书将引导您了解每个重要方面,包括测试。

经过进一步调查,我发现DLR的ScriptEngine类可用于调用IronRuby或IronPython脚本,并将对象传递给它们。我认为短期内最好的方法是编写带有[TestMethod]属性的存根测试方法,并为每个方法调用不同的动态脚本。我从IronPython书籍中下载了示例代码,展示了如何做到这一点。当C# 4.0发布时,我可以使用“dynamic”关键字,而无需外部脚本。 - Robert Lewis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接