您好我搜索了其他一些帖子,但大多数人认为人们知道他们在单元测试中做了什么,坦率地说我没有。我看到了单元测试背后的想法,而且我现在正在盲目编写一个Silverlight应用程序,我想写一些单元测试,以确保我走在正确的道路上。我希望能够使用SL4 vs 2010 silverlight单元测试项目模板,以保持简单并且不使用外部工具。所以我需要回答的问题是:
单元测试的方法是什么? 单元测试和自动化单元测试之间有什么区别? 我如何在silverlight中进行有意义的单元测试? 单元测试时(在silverlight中)我应该注意什么?
我还应该在我的silverlight应用程序中实现某种IRepository模式,以便更轻松地进行单元测试吗?
修改
我将在此处发布有用的链接,因为我在此过程中探讨了这一点:
在silverlight中实现MVVM - http://community.infragistics.com/pixel8/media/p/91949.aspx
Mix10 MVVM谈话 - http://live.visitmix.com/MIX10/Sessions/EX14
单元测试Ria应用 - http://blogs.msdn.com/b/vijayu/archive/2009/06/08/unit-testing-business-logic-in-net-ria-services.aspx
PK的优秀资源:http://dotenetscribbles.blogspot.com/2009/12/unit-testing-dependency-injection-and.html
答案 0 :(得分:2)
我从未使用 silverlight单元测试项目模板。我只使用nunit在silverlight中进行单元测试。所以,我会留给别人回答。 就你的其他问题而言:
单元测试应该推动您的设计。您的单元测试是代码的第一批用户。您的代码基于一些期望,单元测试验证了满足期望。使用MVVM模式(因为您使用silverlight),便于单元测试。要记住的最重要的事情是你必须编写可测试的代码。要编写可测试的代码,最重要的是要注入依赖项。例如,如果您的代码调用db。你,不能进行单元测试来调用DB。相反,您将模拟数据访问层。这就是模拟和存根等概念出现的地方。我在我的sivlerlight单元测试中使用moq进行模拟。我认为有利于单元测试的另一个重要的事情是单一责任原则。最后,将您的测试代码视为生产代码,否则您的测试可能会给您一个错误的概念,即满足期望。你的单元测试是代码,因此可能有错误。
单位之间有什么区别 测试和自动化单元测试?
我不太清楚这是什么意思。单元测试是白盒测试的自动化方式。每次签入存储库中的任何代码时,您都可以拥有运行所有单元测试的脚本。这可以是持续整合的一部分。
我如何有意义地进行单元测试 Silverlight的
在silverlight中,为了便于测试,您应该使用命令,而不是在代码隐藏文件中编写代码。这允许您在单元测试时模拟按钮单击和其他GUI事件。使用MVVM模式和命令,您可以测试所有C#代码(不是xaml),直到UI(转换器,VM等)。
在这一个答案中很难提及所有内容。我建议,你谷歌MVVM,Silverlight命令,马丁福勒 - 模拟不是存根,模拟银光框架,依赖注入