我已经学习了很多浏览C#的隐藏功能,当我找不到类似于VB.NET的东西时,我感到很惊讶.
那么它的一些隐藏或鲜为人知的特征是什么?
我正在使用Visual studio(有时是resharper)来运行我的单元测试.
我听说过NUnit,但我不知道很多事情......
我应该关心它吗?它能提供比视觉工作室更好的东西吗?
我应该使用NUnit吗?为什么?
在几年没有全天候使用它之后再回到.NET,并想知道现在好的单元测试包是什么.
我对NUnit很熟悉(几年前),并且曾经与IronRuby进行过简短的比赛,其目标是获得像rspec这样的东西,但除此之外我不知道.
我知道我可以谷歌这个并称之为一天,但我相信我可能会在这里问一个问题得到一个更好,更明智的回应:-)
建议?
我希望在我的工作中引入一个单元测试框架.我们正在使用Visual Studio 2005(虽然我们可能会在未来6个月内迁移到2008年)并主要使用C#.如果框架具有某种最好的IDE集成,但我对那些没有集成但仍然相对简单的框架开放.我会以这种或那种方式抵抗它,所以如果我能确定我所推动的不是颈部疼痛,那将有助于我的情况.
从迄今为止我所做的研究中明显的选择指向了nUnit,但我想在推荐给我的团队之前获得实际使用它的人的印象.
有没有人使用过nUnit?如果是这样,我应该注意哪些陷阱或限制?还有其他好的选择吗?如果是这样,如果你同时使用了两个nUnit,我会非常欣赏它们的优点和缺点.
我意识到有许多老问题解决了直到2008年的Visual Studio版本的 NUnit v MSTest的一般问题(比如这个).
微软有第三版正确的历史.对于MSTest,那就是VS2010.
他们是用MSTest完成的吗?你会在新项目中使用它而不是NUnit吗?
我的具体关注点:
(我们使用ReSharper,因此测试运行者对我们来说不是问题.过去几年我们使用过NUnit.我们没有TFS.)
cruisecontrol.net nunit mstest visual-studio-2010 visual-studio
使用Visual Studio 2008所具有的框架,我是否因为不使用像NUnit这样的外部工具而遗漏了什么?从我可以看出,使用NUnit似乎更麻烦的是手动创建测试类和方法而不是右键单击IDE本机.话虽如此,我是否缺少NUnit提供的VS不包含的功能?有一个简单的GUI供我的QA人员访问很好,但是使用nAnt和构建依赖于单元测试传递,我是否缺少很酷的功能?
罗伊Osherove,作者的艺术单元测试,已经评论在博客上说的很多东西NUnit的所谓做更好,这是多快就是其中之一.
我的问题是,如果有的话,速度有多快?我们在谈论一个数量级吗?10%?50%?
我问这个是因为目前我无法比较这两者.我正在尝试将我的测试项目设置为双模式,以便我可以在它们之间切换.不幸的是,我遇到了NUnit与最新版本的Microsoft Moles集成的问题,并且NUnit与第三方库存在冲突(显示与log4net相关).
到目前为止,MSTest在Visual Studio 2008中似乎更容易使用.NUnit的所有版本问题和兼容性问题(至少对我来说)都指导我选择MSTest作为项目的框架(尽管我可能保持双模式)选项).MSTest的另一个优点是我仍然可以使用大多数NUnit断言:
using Assert = NUnit.Framework.Assert;
using Is = NUnit.Framework.Is;
但是......如果在NUnit中速度确实快得多,那么我宁愿使用它,尽管有痛点.
最后,VS2010的MSTest速度是否有任何提升?
在过去的几个月里,我一直在阅读有关TDD的很多内容,并决定试着用一个简单的例子来试一试,我只是不确定我是否在实践中测试正确的东西.这里是用于验证电子邮件的自定义数据注释的测试:
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MembershipTest.Tests
{
    [TestClass]
    public class CustomDataAnnotationsTest
    {
        [TestMethod]
        public void CustomDataAnnotations_Email_ReturnTrueIfNull()
        {
            // Arrange
            EmailAttribute attribute = new EmailAttribute();
            // Act
            bool result = attribute.IsValid(null);
            // Assert
            Assert.AreEqual(true, result);
        }
        [TestMethod]
        public void CustomDataAnnotations_Email_ReturnFalseIfInvalid()
        {
            // Arrange
            EmailAttribute attribute = new EmailAttribute();
            // Act
            bool result = attribute.IsValid("()[]\\;:,<>@example.com");
            // Assert
            Assert.AreEqual(false, result);
        }
        [TestMethod]
        public void CustomDataAnnotations_Email_ReturnTrueIfValid()
        {
            // Arrange
            EmailAttribute attribute = new EmailAttribute();
            // Act
            bool …unit-testing ×6
nunit ×4
c# ×3
testing ×3
.net ×2
mstest ×2
asp.net ×1
asp.net-mvc ×1
performance ×1
tdd ×1
vb.net ×1