Questions tagged «xunit»

2
如果在业务逻辑更改时失败,则单元测试是否被认为是脆弱的?
请参见下面的代码;它会测试以查看具有性别的女性是否有资格接受要约1: [Fact] public void ReturnsFalseWhenGivenAPersonWithAGenderOfFemale() { var personId = Guid.NewGuid(); var gender = "F"; var person = new Person(personId, gender); var id = Guid.NewGuid(); var offer1 = new Offer1(id,"Offer1"); Assert.False(offer1.IsEligible(person)); } 此单元测试成功。但是,如果将来向女性提供“ Offer1”,它将失败。 可以接受的说法是-如果围绕报价1的业务逻辑发生了变化,那么单元测试就必须发生变化。请注意,在某些情况下(对于某些商品),业务逻辑会在数据库中更改,如下所示: update Offers set Gender='M' where offer=1; 在某些情况下,在域模型中如下所示: if (Gender=Gender.Male) { //do something } 另请注意,在某些情况下,背后的域逻辑会定期更改,而在某些情况下则不会。

4
.NET的最佳单元测试框架是什么,为什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 在我看来,每个人都使用NUnit甚至不考虑其他选项。我认为这是因为: 每个人都已经熟悉它,因此他们不必学习新的API。 它已经与他们的持续集成服务器一起设置为可与NUnit一起使用。 我对此有错吗? 我决定最近在自己的一个项目中使用xUnit,我喜欢它!这对我来说意义非凡,从概念上讲,这似乎是NUnit向前迈出的明确一步。 我想听听有关哪个框架实际上是最佳框架的意见-无需考虑必须学习或重新配置自动化测试。

6
为什么xUnit框架不允许测试并行运行?
您是否知道任何可以并行运行测试以利用当今计算机中的多个内核的xUnit框架? 如果没有(或很少)这样做,也许是有原因的……测试通常这么快,以至于人们根本不认为需要将它们并行化吗? 是否有更深层次的东西可以排除(至少部分)测试分布在多个线程上?

1
OSS项目中的集成测试-如何处理带有身份验证的第三方?
我的一个开源项目是一个备份工具,该工具可从GitHub,Bitbucket等进行脱机存储库备份。 它调用托管者的API来获取存储库列表,然后使用Git / Mercurial /任何克隆/将存储库拉到本地计算机。 因此,我在集成测试中通过身份验证调用了GitHub API。 (并且当克隆/拉动功能完成时,可能会有测试从GitHub克隆存储库,并且还需要进行身份验证) 我创建了一个用户和一个组织,专门用于这些集成测试。 问题:我不能只是在源代码中的某个地方对密码进行硬编码,因为它是开源的,并且代码在GitHub上是公开的。 我现在在做什么 在测试中,我从环境变量中获取所有用户名,密码和存储库名称。 这是一个例子: config.Name = TestHelper.EnvVar("GithubApiTests_Name"); config.Password = TestHelper.EnvVar("GithubApiTests_PW"); (TestHelper.EnvVar是一个帮助程序方法,它获取环境变量的值并在不存在环境变量时引发异常) 然后,我有一个批处理文件,用于设置这些环境变量。 真正的(environment-variables.bat)在构建脚本中以及在执行测试之前被调用,但是在源代码控制中被忽略,因此它实际上不在我的存储库中。 什么是源控制environment-variables.bat.sample,它设定了相同的环境变量,而是用假密码: rem copy/rename this file to environment-variables.bat echo Setting environment variables for integration tests... set GithubApiTests_Name=scm-backup-testuser set GithubApiTests_OrgName=scm-backup-testorg set GithubApiTests_PW=not-the-real-password set GithubApiTests_Repo=scm-backup 因此,我可以将存储库克隆到我的计算机上,将此文件重命名为environment-variables.bat,用真实的密码替换假密码,所有集成测试都将起作用。 这也适用于持续集成-我正在使用AppVeyor,并且可以在Web UI中设置这些环境变量。 我对此不满意 我认为这对于OSS项目不是一个好的解决方案,尤其是对于该项目不是这样: 从理论上讲,我的项目的贡献者现在可以通过以下方式运行集成测试: …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.