我注意到[TestCleanup]方法不能采用TestContext参数.那我怎么知道哪个测试正在清理?解决方法:你可以在你的类上有一个名为TestContext的公共属性,它将由MSTest设置,例如:[TestClass] public class UnitTest1 {public TestContext TestContext { get; set; }[TestMethod]public void TestMethod1(){var x = 2;var y = 1 + 1;Assert.AreEqual(x, y);}[TestMethod]public void TestMethod2(){Assert.AreEqual(true, true);}[TestClea...
我有一个实现IEqualityComparer的类的类和比较器:class Foo {public int Int { get; set; }public string Str { get; set; }public Foo(int i, string s){Int = i;Str = s;}private sealed class FooEqualityComparer : IEqualityComparer<Foo>{public bool Equals(Foo x, Foo y){if (ReferenceEquals(x, y)) return true;if (ReferenceEquals(x, null)) return false;if (ReferenceEquals(y, null)) return false;if (x.GetType(...
我们有一个类将消息广播到Service Fabric无状态服务.这种无状态服务有一个分区,但有许多副本.该消息应发送到系统中的所有副本.因此,我们在FabricClient中查询单个分区以及该分区的所有副本.我们使用标准HTTP通信(无状态服务具有通信侦听器和自主OWIN侦听器,使用WebListener / HttpSys)和共享HttpClient实例.在负载测试期间,我们在发送消息期间会收到许多错误.请注意,我们在同一个应用程序中有其他服务,也在进行通信(WebListener / ...
在实现实现IDictionary的东西时,我应该进行单元测试? 测试整个界面似乎有些过分,但我知道什么?我只进行了几天的单元测试……解决方法:应该测试您的IDictionary的每个公共成员.您还应该设置一些测试,以确保您的IDictionary的行为与IDictionary的其他具体实现相同.事实上,您可以构建大多数测试:void Test_IDictionary_Add(IDictionary a, IDictionary b) {string key = "Key1", badKey = 87;int value = 9, badValue = "Horse";a....
我是一个TDD新手,我想弄清楚如何测试以下代码. 我首先尝试编写测试,但是我在创建触及DataAccessor的测试时遇到了麻烦.我无法弄清楚如何伪造它.我已经完成了对货运类的扩展并覆盖了Load()方法;继续测试对象.我觉得好像我最终单元测试我的Mock对象/存根而不是我的真实对象.我认为在TDD中单元测试应该击中对象上的所有方法;但我似乎永远不会测试Load()代码只覆盖Mock Load 我的测试是写一个对象,其中包含一个基于发货号的订单列表. 我...
我想从Hudson构建服务器运行自动Silverlight单元测试.看来有两种选择: >使用Statlight,虽然它似乎是为TeamCity而不是Hudson设计的,但它会涉及一些黑客攻击才能让它工作.>使用NUnit Silverlight tests. 任何人都可以推荐这些选项中的任何一个吗?还是有更好的选择吗?解决方法:您可以尝试使用Lighthouse Silverlight Unit Test Runner,它适用于包括Hudson,TeamCity和CCNet在内的每个Build Server,因为它默认生成与NUnit兼容的xml结...
我有一组用C#和NUnit编写的集成测试,我想在构建机器上并行运行它们.我怎么做?在类似的question中,接受的解决方案是: >创建自己的测试运行器>转到MBUnit 还有一个项目NUnit.MultiCore,但它是Alpha版本,在生产中使用会很可怕…或者使用构建机器的功能并行运行几个标准NUnit运行程序,这是一种解决方法,而不是一个持久的解决方案. 到目前为止有什么变化?我想继续使用NUnit,我不太确定构建自己的测试运行器是多么容易.解决方法:从版本...
我有以下简单的类数据注释来控制电话号码的区域:public class PhoneAreaAttribute : ValidationAttribute, IClientValidatable {public const string ValidInitNumber = "0";public const int MinLen = 2;public const int MaxLen = 4;public override bool IsValid(object value){var area = (string)value;if (string.IsNullOrWhiteSpace(area)){return true;}if (area.StartsWith(PhoneAreaAttribute.ValidInitNumber)){return...
我正在使用Mono开发跨平台应用程序.我想检查运行应用程序的用户的RW访问权限.在NT上我可以使用.GetAccessControl方法(在Mono上抛出PlatformNotSupported异常),但是如何处理* nix和MacOS?有解决方案的跨平台吗?解决方法:Mono.Unix具有UNIX特定的实现:var ufi = new UnixFileInfo("/tmp/test.cpp"); ufi.CanAccess(AccessModes.F_OK); // is a file/directory ufi.CanAccess(AccessModes.R_OK); // accessible for reading ufi.Ca...
我用自定义事件参数和相关的提升方法定义了两个事件.现在我想知道该事件的测试内容和方式.我应该如何分析代码以找到单元测试的候选者?解决方法:我测试事件的方式如下: 假设这是你的对象:public class MyEventRaiser {public event EventHandler<string> MyEvent = delegate { };public void Process(string data){// do something interestuingThread.Sleep(2000);if (!string.IsNullOrEmpty(data)){this.MyEvent(this, data + ...
我使用流利验证如下:public class ProjectValidator : AbstractValidator<Project> {public ProjectValidator(){RuleFor(project => project.Name).NotEmpty().WithMessage("Project name cannot be empty.");} }在某些服务中:IValidator<Project> _projectValidator; _projectValidator.ValidateAndThrow(project);集成测试的一部分:var validationException = Assert.Throws<ValidationException>(() => projectRepository.Sa...
使用Microsoft Fakes Framework,我试图在我们的TFS构建服务器上运行我的单元测试.本地它工作正常,但它不能在构建服务器上工作: 似乎没有将正确的文件复制到输出目录中.我应该复制哪些文件(除了单元测试和测试的项目类)?我应该复制Fakes dll吗?解决方法:您需要在构建服务器上安装Visual Studio Premium / Ultimate. 安装完成后,您应该能够执行构建.我很确定它会在构建过程中复制正确的文件,就像它在本地一样.
使用C#编写17种Hello World程序(初学者C#测试石)1. A Beginners Hello World 初学者代码public?class?HelloWorld {? ??public?static?void?Main() ??{ ????System.Console.WriteLine("HELLO?WORLD"); ??} }2. Slightly improved version???略有提高 代码using?System;??(就这?会用命名空间?)public?class?HelloWorld {? ??public?static?void?Main() ??{ ????Console.WriteLine("HELLO?WORLD"); ??} }?3. Command Line Argum...
我正在使用Visual Studio 2012,我遇到以下错误:“错误’hw02.World’不包含带有2个参数的构造函数.我正在尝试为我的类创建单元测试:class World : IWorld {public World(int width, int height){Width = width;Height = height;world = new IBuilding[width, height];} }创建错误的测试:[TestClass] public class UnitTest1 {[TestMethod]public void TestMethod1(){var world = new World(5, 5); // this line creates the err...
我对单元测试相当新,并且想要在服务不可用时模拟/测试以确保抛出正确的错误. 脚本 REST API,通过C#中的LDAP / DirectorySearcher查询Active Directory用户帐户.我看到三种可能的结果:找到用户,找不到用户,服务不可用(DirectorySearcher).我为此设置了三个测试,但是一个总是失败,这取决于我是否连接到域.连接后,测试#1,#2成功.断开测试#2时,#3成功.我的测试是否过度杀伤,因为DirectoryServices库已经可靠了?我的目的是确保Web服务...