草庐IT

unit-testing

全部标签

使用 HashSet(pluralsight 代码)的假数据库上下文的 C# 单元测试(新 Q)

简短版:在此视频中,ScottAllen先生explainshowtotestacontroller.但是他没有展示类的完整代码:FakeDbContext。有没有人可以帮我完成它?他在“测试Controller”视频的06分15分展示了类(class)。长版在学校,我有一门选修课,我们学习C#。我的考试项目是一个使用MVC3的ASP站点。为了快速学习,我看过PluralSight的视频。我的问题是关于thisvideo中的一些代码他解释了如何测试Controller。所以我试过:我制作了一个具有简单索引方法的Controller:publicclassRound1Controller

c# - 如何对 PostSharp 方面进行单元测试?

问这个之后question关于用PostSharp实现一个方面,我想到以后我可能必须更新这个方面的代码,我不想冒之后破坏一切的风险。所以,我开始考虑单元测试。我的第一个问题是:Isitrelevanttothinkaboutunittestinganaspect?我希望答案是"is",但如果不是,我希望得到其他建议。然后,如果是这样,HowtoimplementunittestingforPostSharpaspects? 最佳答案 是的,它对单元测试方面当然有意义,因为它们代表功能,而且由于您在多个地方使用它,因此测试它就更加重要

c# - 迭代器 block 的奇怪测试覆盖率结果,为什么不执行这些语句?

我正在使用dotCover来分析我的单元测试的代码覆盖率,我得到了一些奇怪的结果......我有一个覆盖率不完整的迭代器方法,但未覆盖的语句只是方法末尾的右大括号。这是我正在测试的方法:publicstaticIEnumerableCommonPrefix(thisIEnumerablesource,IEnumerableother,IEqualityComparercomparer){source.CheckArgumentNull("source");other.CheckArgumentNull("other");returnsource.CommonPrefixImpl(oth

c# - 如何测试使用 BackgroundWorker 加载的 ViewModel?

MVVM的优点之一是ViewModel的可测试性。在我的特定情况下,我有一个VM,它在调用命令时加载一些数据,及其相应的测试:publicclassMyViewModel{publicDelegateCommandLoadDataCommand{get;set;}privateListmyData;publicListMyData{get{returnmyData;}set{myData=value;RaisePropertyChanged(()=>MyData);}}publicMyViewModel(){LoadDataCommand=newDelegateCommand(OnLo

c# - 如何轻松替换 Microsoft Fakes 程序集?

将MicrosoftFakes程序集添加到测试项目很容易:只需右键单击引用部分中的父程序集,然后选择“添加Fakes程序集”。但是,当父程序集公共(public)接口(interface)发生变化(新接口(interface)、新方法)时,FakesAssembly就变得过时了。当我再次右键单击父程序集时,我很想看到“替换假程序集”或“更新假程序集”,但我只看到“添加假程序程序集”。在已添加Fakes程序集时选择“添加Fakes程序集”会导致错误:Fakesassemblyalreadyreferenced.AFakesassemblyforisalreadyinthereferenc

c# - Net Core : Execute All Dependency Injection in Xunit Test for AppService, 存储库等

我正在尝试在AppService的Xunit测试中实现依赖注入(inject)。理想的目标是运行原始应用程序Startup/configuration,并使用Startup中的任何依赖注入(inject),而不是在我的测试中再次重新初始化所有DI,这就是整个目标。更新:Mohsen的回答很接近。需要更新几个语法/需求错误才能工作。由于某种原因,原始应用程序可以运行并且可以调用部门应用程序服务。但是,它不能调用Xunit。最后使用原始应用程序的启动和配置让Testserver工作。现在收到以下错误:Message:Thefollowingconstructorparametersdidn

c# - 集成测试与单元测试

我最近开始阅读单元测试的艺术,了解了单元测试和集成测试之间的区别。我很确定我在NUnit中做的一些事情更适合集成测试。那么我的问题是,您使用哪些方法和工具进行集成测试? 最佳答案 根据我的经验,您可以(大部分)使用相同的工具进行单元测试和集成测试。不同之处在于您测试的内容,而不是您测试的方式。因此,虽然设置、代码测试和结果检查会有所不同,但您可以使用相同的工具。例如,我将JUnit和DBUnit用于单元测试和集成测试。无论如何,单元测试和集成测试之间的界限可能有些模糊。这取决于您将什么定义为“单位”...

c# - 如何强制 MSTEST TestMethod 在运行前重置所有单例/静态?

我在VisualStudio2008中使用MSTEST。如何让某个测试类中的每个单元测试方法都像第一个运行的测试一样运行,以便在运行每个测试之前重置所有全局状态?我不想使用TestInitialize、ClassInitialize、AssemblyInitialize等显式清理世界。例如:[TestClass]publicclassMyClassTests{[TestMethod]publicvoidTest1(){//The"Instance"propertycreatesanewinstanceof"SomeSingleton"//ifithasn'tbeencreatedbef

c# - 使用 Single 作为 Assert 是一种不好的做法吗?

我正在测试一种操作集合的方法。给定一组参数,它应该只包含一个与条件匹配的元素。编辑:该集合可能还有其他几个不符合条件的元素。我正在使用Single测试该行为,效果很好,因为如果根本没有匹配项或多个匹配项,它将通过抛出异常来使测试失败。但是没有实际的断言,它以某种方式违反了arrange、act、assert。所以我想知道这是否是一种不好的做法,是否有更好的方法来做到这一点。以下伪代码演示我的问题:[TestMethod]publicvoidTestMethod(){Listlist=MethodToTest(param1,param2);list.Single(s=>s.Matches

c# - 最小起订量和 SqlConnection?

我正在为我们的一个产品编写单元测试,并且已经使用Moq成功地模拟了与EntityFramework的连接。但是,我遇到了以下方法:publicstaticproductValuefindValues(stringproductName,stringdbConnectionString){try{SqlConnectionconn=newSqlConnection(dbConnectionString);conn.Open();//Dostuff}}它使用传递的连接字符串在该方法中访问我们的数据库。是否可以使用Moq设置模拟数据库并创建指向模拟数据库的连接字符串?我正在尝试按照以下方式做