我意识到这是大约20个不同帖子的重复,但它们都不是MVC4特有的,我见过的所有帖子都没有回答我的所有问题.到目前为止,我第一次涉足TDD世界至少可以说令人沮丧.我尝试做的大部分内容似乎与MVC 4不兼容,或者如果没有使用记录不完整的第三方库,我还不太了解.
我希望能够做的是编写一个测试来测试我的控制器动作,他们传递的模型和查看动作正在发送模型.我想测试视图是否存在,我想测试传递的模型是否是视图的正确类型,我想要一些方法来测试它是否会正常处理.我也希望能够测试我的路线.并测试验证过滤器?
我想要一种方法来对ASP.Net MVC进行单元测试,这将使机会很少.
测试Action的Model输出似乎很容易,但测试视图几乎是不可能的.
所以这是我的问题列表:
我更喜欢使用内置的Visual Studio测试项目,但如果我必须使用NUnit,我必须这样做.我只需要确保它正确完成.
提前感谢您的回复.
编辑:我也无法让NUnit使用我的MVC4应用程序,因为有些软件与.NET版本不兼容,其中一个程序集已被编译.
tdd unit-testing visual-studio-2010 visual-studio asp.net-mvc-4
我们是一家从事.NET LOB开发工作的MS商店.我们还为我们的CRM应用程序使用MS Dynamics ...所有开发人员目前都在使用VS/SQL Server 2008.我们也使用VSS,但是每个人都讨厌它在工作中并且很快就会出局.
我们正在开始整个团队的TDD实施计划(〜十几个人).我已经获得TeamCity设置并使用2008 sln构建器成功运行我的第一个自动构建,并使用同事已设置的SVN进行源代码控制分析.在演示管理时,我认为他们开始购买我的蛇油,并提出了调查TFS的建议.
这让我对TDD架构的计划产生了不小的影响.尽管如此,因为我一直认为TFS太昂贵而且对我们的团队来说不值得(而且我在其他商店也看到了相同的情况).我觉得MS在TDD/CI领域已落后多年,第三方产品可能更好,更成熟......我还需要做很多研究,但我想我会来这里看看如果有人实际使用过两个系统.
我意识到TFS包含的内容远远多于构建服务器......但我不想至少故意将这个问题过于宽泛.使用TFS/TFB代替TeamCity的实际利弊是什么 - 例如,我们会失去/获得哪些好处?有没有人在这里实际使用过这两个系统(TFS for TDD/CI和TeamCity/SVN)并且可以从实际的角度说话?
我已经对这个主题做了一些搜索,我在SO上找到的一篇帖子提到TFB的缺点是它只支持MSBuild.我打算在TeamCity上使用FinalBuilder; 看来它也支持TFS ......
谢谢你的建议
编辑:有没有人使用TFS作为他们的Build/CI服务器,可以告诉成功/失败的故事?
我正在使用Windows 7中的C#开发.NET 4.0.
我想测试一些使用mock的方法之间的通信.唯一的问题是我想在没有实现接口的情况下这样做.那可能吗?我刚刚阅读了很多关于模拟对象的主题和一些教程,但是它们都用于模拟接口,而不是类.我尝试使用Rhino和Moq框架.
我刚刚开始使用Jasmine,请原谅新手问题但是在使用时是否可以测试对象类型toHaveBeenCalledWith
?
expect(object.method).toHaveBeenCalledWith(instanceof String);
Run Code Online (Sandbox Code Playgroud)
我知道我可以做到这一点,但它正在检查返回值而不是参数.
expect(k instanceof namespace.Klass).toBeTruthy();
Run Code Online (Sandbox Code Playgroud) 好吧,所以我长期以来一直在绊倒一些问题,我想听听社区其他人的意见.
首先,让我们看一些抽象的控制器.
function Ctrl($scope, anyService) {
$scope.field = "field";
$scope.whenClicked = function() {
util();
};
function util() {
anyService.doSmth();
}
}
Run Code Online (Sandbox Code Playgroud)
显然我们在这里:
$scope
和注入的一些服务util()
现在,我想在单元测试(Jasmine)中介绍这个课程.但是,问题是我想验证当我单击(调用whenClicked()
)某个项时util()
将调用该方法.我不知道该怎么做,因为在Jasmine测试中我总是得到错误,无论是模拟util()
还是没有被调用.
注意:我不是要修复这个特定的例子,我一般都在询问测试这样的代码模式.所以请不要告诉我"究竟是什么错误".我问的是如何做到这一点,而不是如何解决这个问题.
我一直在尝试各种方法:
$scope
在我的单元测试中使用,因为我没有附加到此对象的此功能(它通常以消息Expected spy but got undefined
或类似结尾)Ctrl.util = util;
,然后验证模拟,Ctrl.util = jasmine.createSpy()
但在这种情况下Ctrl.util
没有被调用,因此测试失败util()
以附加到this
对象并Ctrl.util
再次嘲笑,没有运气好吧,我无法找到解决这个问题的方法,我期待JS忍者的一些帮助,一个工作小提琴将是完美的.
我是TDD的新手,我发现RegExp非常特殊.是否有任何特殊的单元测试方法,或者我可以将它们视为常规功能?
我刚刚开始学习Scala语言,并希望在TDD -way中学习.您能否分享一下Scala及其优缺点的单元测试框架的经验.
我正在使用IntelliJ IDEA进行Scala开发,因此能够使用IDE支持运行测试会很不错.
很多人谈论在开始编写代码之前为代码编写测试.这种做法通常称为测试驱动开发或简称TDD.通过这种方式编写软件可以获得哪些好处?我如何开始这种做法?
这两个想法听起来与我非常相似,但可能存在微妙的差异或完全相同的事情,以不同的方式解释.TDD与测试第一开发/编程之间有什么关系?
tdd ×10
testing ×3
unit-testing ×3
bdd ×2
angularjs ×1
c# ×1
jasmine ×1
javascript ×1
mocking ×1
regex ×1
scala ×1
teamcity ×1
test-first ×1
tfs ×1
tfsbuild ×1