Tag: tdd

当所需代码几乎没有逻辑时,是否仍然使用TDD编写测试? 为什么?

TDD应该具有100%的代码覆盖率。 这是否意味着应该为属性getter和setter编写测试,以及其他不包含实际逻辑的方法,例如处理外部APIfunction? 例1: 下面是一个示例方法(这也恰好是另一个SO问题的例子,它解决了如何最好地测试它,如果我们要测试它)。 这种方法做得不多。 它是停止服务的System.ServiceProcess.ServiceControllerfunction的外观。 目前这个代码不是使用TDD编写的,但如果是,那么它应该是一个应该测试的东西吗? 这里的逻辑非常少。 测试本身并没有那么有用。 仅供参考:如果您想回答如何最好地测试它(IoC&Adapter Pattern vs. Detouring),请参阅其他问题 。 Public Function StopService(ByVal serviceName As String, ByVal timeoutMilliseconds As Double) As Boolean Implements IWindowsServicesService.StopService Try Dim service As New ServiceController(serviceName) Dim timeout As TimeSpan = TimeSpan.FromMilliseconds(timeoutMilliseconds) service.[Stop]() If timeoutMilliseconds <= 0 Then service.WaitForStatus(ServiceControllerStatus.Stopped) Else service.WaitForStatus(ServiceControllerStatus.Stopped, timeout) End If Return service.Status = […]

Dapper:unit testingSQL查询

我开始使用微型ORM的Dapper,我使用的是Dapper Rainbow。 我想测试查询和它们检索的数据。 我的意思是,例如,我有UserService和方法GetAll() ,我想测试sql查询是从一些列表中检索所有用户(而不是从数据库,因为我希望测试快速)。 你知道我怎么能这样做吗? 我的服务类(以及我想测试的方法): public static class UserService{ public static IEnumerable GetAll(){ return DB.Users.All(); } } 您对unit testing查询和数据检索有什么建议吗? 谢谢

使用RhinoMocks测试私有方法

我在TDD环境中工作,基本上我面临着一个两难的问题,我认为这在TDD环境中非常重要。 作为程序员,您希望您的方法尽可能可读。 为实现这一目标,我们倾向于在多个私有方法中对方法进行分区。 在这样做时,所有移动到私有函数的代码都失去了它的测试能力。 Rhino测试类无法看到所有这些私有方法,我也需要能够针对这些方法运行测试。 我不希望它们被公开,因为将它们公开是没有意义的。 有任何想法吗?

unit testing委托方法

在unit testing中是否有任何一点方法,它唯一能做的就是委托另一个对象的工作? 例: class abc { … public void MoveLeft() { fallingPiece.MoveLeft(); } … } 出于学习目的,我正在为我现有的一些课程进行unit testing。 例如,为此MoveLeft()方法执行unit testing似乎有点奇怪。 但我不确定如何完成Test-First。 谢谢

Linq to SQL的unit testing实践

我试图围绕unit testing,我遇到了一个我不确定的行为: “可以备份库存” 基本上,“库存”表被复制到“InventoryHistory”表,并给出备份发生的时间戳(“HistoryDate”)。 这是备份库存的代码: DateTime historyDate = DateTime.Now; MyDataContext db = new MyDataContext(); db.GetTable().InsertAllOnSubmit( db.GetTable() .Select(i => new InventoryHistory { ID = i.ID, ItemName = i.ItemName, /* etc, etc, etc */ HistoryDate = historyDate }) ); 我的问题是: 应该/可以将此行为分解为更小的可unit testing部件吗? 由于我正在测试专用测试数据库,我应该使用模拟工具并遵循任何“存储库”的抽象工厂模式吗?

在moq中测试多次调用的方法

我有这样的界面: Interface IWriteFile { string FileName {get;set;} void Open(); void WriteData(string dataToWrite); void Close(); } 我想测试一个将使用此接口填充文件的类。 它会多次调用WriteData,我只想测试最终输出。 有没有办法向Mock对象引入一个新的私有字段,每次调用WriteData(Data)时都会附加该字段? 我真的只想看看文件在一天结束时会是什么样子。 有更好的方法吗?

使用c#计算Zip文件中的文件数

我正在生成一些.csv文件,我需要在Zip文件中压缩它。 好吧,我有一个框架来做这个,可能一切都会好的。 但! 正如TDD所说,我可以编写代码,经过一些测试! 我的第一个测试听起来很简单,但是我在阅读Zip文件时遇到了一些问题,有人知道一种简单的方法来计算我的zip文件中的文件数量吗?

断言比较两个对象列表C#

我目前正在尝试学习如何使用unit testing,并且我已经创建了3个动物对象的实际列表以及3个动物对象的预期列表。 问题是我如何断言检查列表是否相等? 我尝试过CollectionAssert.AreEqual和Assert.AreEqual,但无济于事。 任何帮助,将不胜感激。 测试方法: [TestMethod] public void createAnimalsTest2() { animalHandler animalHandler = new animalHandler(); // arrange List expected = new List(); Animal dog = new Dog(“”,0); Animal cat = new Cat(“”,0); Animal mouse = new Mouse(“”,0); expected.Add(dog); expected.Add(cat); expected.Add(mouse); //actual List actual = animalHandler.createAnimals(“”,””,””,0,0,0); //assert //this is the line that does not evaluate […]

忽略ShouldBeEquivalentTo中的内部属性

在做ShouldBeEquivalentTo时有没有办法忽略类的内部属性? 例如,在下面的类中,我想从对象图比较中排除MetaData属性。 public class SomeObject { Public string SomeString { get; set; } internal MetaData MetaData { get; set; } } 我宁愿不使用 someObject.ShouldBeEquivalentTo(someOtherObject, options => options.Excluding(info => info.SelectedMemberPath == “MetaData”) 因为我可能有超过1个内部属性,并为所有这些属性设置这将是乏味的。

在C#中测试/注入私有字段的好习惯是什么?

如果这个重复,我道歉。 我被赋予了为该方法添加一些覆盖的任务,并被告知模拟私有List属性。 我的问题是: 有没有办法测试私人领域? 我找到的解决方案是添加新的构造函数只是为了注入这个私有列表。 我不确定这是否正确,所以任何帮助都将受到高度赞赏。 public class Class1 { public Class1(List list)//This is just for Unit Testing { list1 = list; } private readonly InjectRepository _repository; // public Class1(InjectRepository repository)//This is the actual constructor { _repository = repository; } private List list1 = new List(); public void Do_Complex_Logic() { //list1 will be set with […]