嗨我已经搜索了其他一些帖子,但大多数人都认为人们知道他们在单元测试中做了什么,坦率地说我没有.我看到了单元测试背后的想法,而且我现在正在盲目编写一个Silverlight应用程序,我想写一些单元测试,以确保我走在正确的道路上.我希望能够使用SL4 vs 2010 silverlight单元测试项目模板,以保持简单并且不使用外部工具.所以我需要答案的是:
单元测试的方法是什么?
单元测试和自动化单元测试之间有什么区别?
我如何在silverlight中进行有意义的单元测试?
单元测试时(在silverlight中)我应该注意什么?
我还应该在我的silverlight应用程序中实现某种IRepository模式,以使单元测试更容易吗?
编辑:
我会在这里发布有用的链接:
在silverlight中实现MVVM – http://community.infragistics.com/pixel8/media/p/91949.aspx
Mix10 MVVM talk – 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
最佳答案 我从未使用过silverlight单元测试项目模板.我只使用nunit在silverlight中进行单元测试.所以,我会留给别人回答.
就您的其他问题而言:
单元测试应该推动您的设计.您的单元测试是代码的第一批用户.您的代码基于一些期望,单元测试验证了满足期望.使用MVVM模式(因为您使用silverlight),便于单元测试.要记住的最重要的事情是你必须编写可测试的代码.要编写可测试的代码,最重要的是要注入依赖项.例如,如果您的代码调用db.你,不能进行单元测试来调用DB.相反,您将模拟数据访问层.这就是模拟和存根等概念出现的地方.我在我的sivlerlight单元测试中使用moq进行模拟.我认为有利于单元测试的另一个重要的事情是单一责任原则.最后,将您的测试代码视为生产代码,否则您的测试可能会给您一个错误的概念,即满足期望.您的单元测试是代码,因此可能有错误.
what are the differences between unit
tests, and automated unit tests?
我不太清楚这是什么意思.单元测试是白盒测试的自动化方式.每次签入存储库中的任何代码时,您都可以拥有运行所有单元测试的脚本.这可以是持续集成的一部分.
How do I meaningfully unit test in
silverlight
在silverlight中,为了便于测试,您应该使用命令,而不是在代码隐藏文件中编写代码.这允许您在单元测试时模拟按钮单击和其他GUI事件.使用MVVM模式和命令,您可以测试所有C#代码(不是xaml),直到UI(转换器,VM等).
在这一个答案中很难提及所有内容.我建议,你谷歌MVVM,Silverlight命令,马丁福勒 – 模拟不是存根,模拟银光框架,依赖注入