我希望能够使用MSpec或其他BDD/TDD框架来测试针对.net微框架的代码。不幸的是,在非MF程序集中引用MF(微框架)程序集是不可能的。这是一种遗憾,因为它只是C#代码,而单元测试在这种情况下会非常有用。有没有人想出一种方法来为.net微框架项目做单元测试(最好是用MSpec)?
发布于 2011-10-25 05:40:22
我下载了最新的Machine.Specifications并将所有代码移到了一个微框架类库项目中。我只得到323个编译错误。需要改变的事情的简短清单...
在这个.NET框架家族上重建MSpec值得吗?可能不会。这是作者/提交者想要跟上的东西吗?可能不会。
我尝试基于此goofy forum thread自定义项目类型GUID和CSharp导入,但最终出现了一系列错误。包括"unsupported by the compiler error“。
D:\TestableMicroLibrary\TestableMicroLibrary.Tests\MMP 0x81010009的
错误4
我想你得自己动手了。对测试类/方法使用约定和反射(这是唯一剩下的事情)。您可以继续使用行为驱动的样式,如test case class per fixture。
public class When_doing_something_neat
{
public void It_should_frob_the_widget()
{
Assert.IsTrue(_widget.IsFrobbed);
}
}并重新构建整个Assert/shoul库(记住,没有扩展方法!)。
public static class Assert
{
public static void IsTrue(bool thing)
{
if(!thing) throw new AssertionException("It is not true");
}
}发布于 2011-11-10 17:10:00
另一个选择是在微框架中创建一个虚拟的“正常”.Net3.5/.Net4.0项目,这有点麻烦,可能不适合。由于微框架C#几乎是所有源代码兼容的,你也可以将源文件添加到虚拟项目中--也就是说,源文件将同时属于两个项目。然后,使用#IFDEFS需要一些最小的条件编译,例如围绕Microsoft.Spot名称空间包含。
在这一点上,虚拟项目是完全可测试的,可以使用任何普通的测试框架NUinit、Specflow等。显然,这种方法需要一定程度的谨慎和小心--注意主机字节顺序等问题,当然,这两个项目必须并行维护。
另一种选择是通过Emulator项目进行测试,这将是更彻底的方法。然而虚拟项目的方法肯定会有WRT快速开发、TDD等方面的好处。
https://stackoverflow.com/questions/7781389
复制相似问题