问题标签 [nsubstitute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
605 浏览

c# - AutoMocking Properties Fails on Abstract Property?

I'm trying to learn AutoFixture, and I've got xUnit and NSubstitute and AutoFixture setup to automatically mock out properties with fakes (with AutoFixture.AutoNSubstitute). In other words, if I have the following interface

Trying to resolve an IFoo will automatically resolve and populate Bar1 and Bar2.

Everything works great for objects with properties of interface, concrete object, or structure types. I'm having a problem getting AutoFixture to automatically create properties of abstract types however.

I have tried using a TypeRelay for the abstract type, so

I have tried specifying it this way,

I have tried using various custom specimen builders

Resolving via the property type:

Resolving via the class type:

With both of the above solutions, I also tried context.Create<ConcreteChild>()

Finally I have tried using the Register<AbstractBase>(fixture.Create<ConcreteChild>); syntax.

None of them seem to work as far as automatically populating properties on an object.

The irritating thing is that I can explicitly fixture.Create<AbstractBase>(); in an individual test and get the ConcreteChild and then hand-jam everything but that kind of defeats the purpose of AutoFixture no?

Any ideas?

UPDATE:

The abstract class. I've pruned most of the irrelivent stuff, left the ctor code in as I'm assuming it gets called?

ChatProtocol is an enum, fairly standard.

The AutoPopulatedProperty ICustomization

0 投票
1 回答
6585 浏览

c# - nsubstitute 属性 getter 覆盖不起作用

我是使用 nsubstitute 进行测试的新手。所以也许这对你来说是一个微不足道的问题。但我找不到一个。我请你帮我解决以下问题。

我通过测试一个抽象类遇到了一个问题:

我想测试一下,getter 和 setter 是否在抽象类中被正确调用。要获取我派生的类的受保护抽象方法:

现在我想测试,如果调用了 MockGetName()-Method,则在通过以下方式获取 Name-Property 的值时:

但是从未调用过 MockGetName 方法,并且变量名称的值错误。

我希望任何人都可以帮助我测试功能。谢谢

0 投票
1 回答
252 浏览

c# - TDD 如何断言在正在测试的方法中设置了 POCO 的属性

我们正在使用 TDD 和 DI 方法以及 NSubstitute 创建一个 C# 应用程序。

我们正在编写一个CreateThing方法:

  • namedescription字符串作为参数
  • 创建一个新Thing对象
  • 从方法参数中设置NameDescription属性Thing
  • 设置StatusActive
  • 将 传递Thing给另一个类的方法(通过构造函数注入)以进行进一步处理

Substitute.For我们知道如何使用and来编写对另一个类的调用的测试.Received()

我们如何为Thing正在设置的属性编写测试?

0 投票
1 回答
471 浏览

testing - NSubstitute 模拟 NLog 记录器失败

我有一个如下所示的测试:

测试成功了,这显然不应该。据我所知,这是根据 NSubstitue 网站的语法。谁能告诉我问题出在哪里?

我在 NuGet 包管理器的 1.7.2.0 版本中使用 NSubstitue。

0 投票
2 回答
767 浏览

c# - 从测试类调用测试类的非默认构造函数

我是单元测试的新手,我想知道这是如何解决的,我想这是典型的,通常可以解决的问题:
我有要测试的受保护方法。我已经用测试类覆盖了测试类,但是测试类的构造函数有 4 个参数,没有默认构造函数。您在测试类的哪个部分添加了对基(4 个参数)构造函数的调用?我已经尝试过[SetUp]方法,但我得到了Use of keyword 'base' is not valid in this context错误。

我认为这个简单的案例是自我解释的,但这里是一个例子:

0 投票
1 回答
330 浏览

nsubstitute - 是否可以使用 NSubstitute 从替代品中返回替代品?

那可能吗?

0 投票
2 回答
91 浏览

unit-testing - 如果我的单元测试没有测试逻辑,我真的完成了什么实质性的事情吗?

我是单元测试的新手,我正在使用 NSubstitute 进行模拟。我已经阅读了几篇关于单元测试的高层次目的的文章,其中很多基本原理都非常令人满意。但是,如果我的测试没有在具体类中测试任何逻辑,我似乎无法理解它的价值。

使用 NSubstitute 文档 ( http://nsubstitute.github.io/help/getting-started/ ) 中的示例,让我们假设一个基本的计算器界面:

我们将使用 NSubstitute 替换实例,指定返回值,并使用 Assert 进行测试:

因为我们已经指定当 1 和 2 传递给 Add 方法时总是返回 3,这如何帮助我们测试存在于实现 ICalculator 接口的具体类中的潜在错误逻辑?如果没有,为什么这个测试值得呢?

谢谢!

0 投票
1 回答
4380 浏览

c# - 如何在 NSubstitute 中伪造一个对象并忽略其方法的内部实现?

我是 NSubstitute 的新手,并试图伪造一个名为OrgDataWS. 这个类有一个名为的方法GetDataSet

以下是我的测试方法:

但是,当我运行我的测试方法时,这条线

抛出异常。这个异常来自OrgDataManager类的实现,据我了解,这不应该发生。使用该子句的目的是,我希望如果使用任何参数调用orgManagerStub'DataDataSet方法Int,只需返回我的xmlElement实例。我不希望我的代码运行OrgDataManager.

我的测试代码有什么问题?如何解决?

0 投票
1 回答
1966 浏览

.net - 如何在 NSubstitute 中使用私有设置器模拟对象的索引器?

我有一个定义如下的接口

如何使用 NSubstitute 模拟这个索引器?

0 投票
2 回答
110 浏览

c# - 有没有办法缓存 Arg.Is<> 定义以在测试的“排列”和“动作”部分中使用?

我有一个看起来像这样的测试:

我想将Arg定义缓存在局部变量中,以便可以在断言中重用它。关键是减少测试中的代码量并使其阅读起来更加流畅。

这似乎不起作用,因为 的值为transitionForThing空,因此断言失败,说Received(null)没有被调用。有没有办法做到这一点或类似的事情,还是我坚持这种语法?