标签: nunit

AutoFixture:为生成的所有随机日期指定边界(或设置为“现在”)

我需要告诉 AutoFixture 它生成的所有随机日期都应该在一定限制内,或者例如等于 Now。我只想设置 Fixture 实例的行为,以便它适用于整个代码中的所有用例,我不想单独检查。

我如何配置 AutoFixture 来做到这一点?

.net nunit autofixture

1
推荐指数
1
解决办法
1198
查看次数

FluentAssertions 如何比较 2 个对象(使用反射或其他方式)?

我目前正在使用FluentAssertion比较 2 个对象。

\n\n

我很想知道它是用什么方式来比较的?

\n\n

使用Reflection像这样

\n\n
public static void PropertyValuesAreEquals(object actual, object expected)   \n{\n        PropertyInfo[] properties = expected.GetType().GetProperties();\n        foreach (PropertyInfo property in properties)\n        {\n            object expectedValue = property.GetValue(expected, null);\n            object actualValue = property.GetValue(actual, null);\n          if (!Equals(expectedValue, actualValue))\n                Assert.Fail("Property {0}.{1} does not match. Expected: {2} but was: {3}", property.DeclaringType.Name, property.Name, expectedValue, actualValue);\n    //\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6.\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果用另一种方式来比较,那是什么呢?

\n

c# asp.net-mvc nunit unit-testing fluent-assertions

1
推荐指数
1
解决办法
1万
查看次数

Nunit 3.12.0 在 WPF 视图模型单元测试中缺少 [RequiresSTA]。调用线程必须是STA

将 Nunit 从版本 v2.6.3 更新到 3.12.0 后。我的单位停止通过。该问题发生在单元测试中,更新后无法找到 RequiresSTAAttribute。

[Test]
[RequiresSTA]
public void When_Smart_Motion_Activity_Is_Selected_The_Values_Are_Valid()
{
     SomeViewModel vm = ViewModelHelper.CreateDefaultViewModel();
     ...
}
Run Code Online (Sandbox Code Playgroud)

删除属性后测试失败,出现以下异常:

System.InvalidOperationException :调用线程必须是 STA,因为许多 UI 组件都需要此。在 System.Windows.Input.InputManager..ctor() 在 System.Windows.Input.InputManager.GetCurrentInputManagerImpl() 在 System.Windows.Input.KeyboardNavigation..ctor() 在 System.Windows.FrameworkElement.FrameworkServices..ctor( )在 System.Windows.FrameworkElement.EnsureFrameworkServices() 在 System.Windows.FrameworkElement..ctor() 在 System.Windows.Controls.Panel..ctor() 在 System.Windows.Controls.Canvas..ctor() 在项目.....:xyz 线

是否有任何适用于 3.12.0 的建议解决方法或替代 [RequiresSTA] ?

.net c# wpf nunit

1
推荐指数
1
解决办法
1247
查看次数

在Azure DevOps中,您能否在另一个阶段获得测试结果——即运行/通过/失败/忽略的总测试?

我有一个在 YAML 中运行的 Azure DevOps 管道。

我正在使用 VSTest@2 任务来执行一些单元测试。这一切都工作正常,我看到测试结果出现在阶段概述 UI 本身以及标题中的“测试和覆盖范围”概述中。

我的 YAML 管道还会向 Slack 通道发布一条消息,其中包含指向构建、成功/失败状态和其他内容的链接。我也热衷于将测试结果添加到消息中...只是一个简单的“总测试 X - 通过 X - 失败 X - 跳过 X”显示。这发生在最后的一个单独的阶段。

有没有办法在管道的后期(在不同的代理上运行)中获取前一阶段的测试结果?

测试是否可作为工件使用,如果是,它们在哪里以及以什么格式提供?

我认为唯一的方法是通过 Azure API 是正确的吗?(我真的懒得为了这个功能而在管道中设置身份验证,我在其他任何地方都不与 API 交互)

nunit unit-testing azure-devops azure-pipelines

1
推荐指数
1
解决办法
2452
查看次数

NUnit - 等于(这个,那个),True(这个==那个)还是那个(这个,Is.EqualTo(那个))?

我们的内部框架使用通用类DBField<T>来模拟具有与实体框架不兼容的数据库(例如 Oracle 11 或 Sybase)的实体字段。

我们试图使其尽可能透明(再次,像实体字段一样),以便以下代码可以工作:

    DBField<int?> z_intLength = 2;
    while (z_intLength <= 5)
    {
        z_intLength++;
    }

    //[...]

    DBField<int?> z_intMaxLength = 10;
    if (z_intLength > z_intMaxLength)
    {
    }
Run Code Online (Sandbox Code Playgroud)

上面的效果很好。我们使用了public static implicit operator DBField<T>(T value)and public static implicit operator T(DBField<T> value),以及覆盖==和其他比较运算符,以及实现IEquatable<DBField<T>>IComparableIComparable<DBField<T>>

现在我们正在尝试进行DBField<T>NUnit 测试,在这方面我们还很陌生。

值得注意的是,我们正在尝试各种等效方案:

            string z_strComment = "Comment";
            _objOrder2.OrderComment = z_strComment;

            //[...]

            Assert.True("Comment" == _objOrder2.OrderComment);
            Assert.That("Comment", Is.EqualTo(_objOrder2.OrderComment));
            Assert.That(_objOrder2.OrderComment, Is.EqualTo("Comment"));
            Assert.Equals("Comment", _objOrder2.OrderComment);
Run Code Online (Sandbox Code Playgroud)

前两个断言通过,后两个断言失败。

  1. 每个断言的内部运作似乎都有所不同。有人可以解释它是什么吗?

  2. 更准确地说,使用断点进行调试似乎表明Assert.That("Comment", Is.EqualTo(_objOrder2.OrderComment)) …

c# nunit

1
推荐指数
1
解决办法
557
查看次数

是否可以在 NUnit 中使用 TestCase 和 TestCaseSource/ValueSource 的组合?

正如标题所说,我想使用 aTestCaseTestCaseSource/的组合ValueSource

这是一个例子:

public static string[] Source1 = new string[]
{
    "One", "Two", "Three"
};

public static string[] Source2 = new string[]
{
    "Four", "Five", "Six"
};

[TestCase("A"), TestCaseSource(nameof(Source1))]
[TestCase("B"), TestCaseSource(nameof(Source2))]
[TestCase("C"), TestCaseSource(nameof(Source1))]
[TestCase("C"), TestCaseSource(nameof(Source2))]
public void MyTest(string x, string y)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

当然这是行不通的,但我想做的是:

  • 针对 Source1 运行测试用例 A
  • 针对 Source2 运行测试用例 B
  • 针对 Source1 和 Source2 运行测试用例 C

有可能实现这样的目标吗?

c# nunit unit-testing

1
推荐指数
1
解决办法
2169
查看次数

NUnit怎么了?

为什么这个项目不再维护?我喜欢这个应用程序,但不更新它似乎是对所有.Net开发人员的犯罪.考虑到未来发布的可能性,我希望添加几个项目.

任何人都可以分享我不知道的东西吗?

tdd nunit

0
推荐指数
1
解决办法
401
查看次数

编写NUnit测试代码

如何编写以下方法的代码,以便可以在NUnit中进行测试?怎么处理Hashtable

public DataSet MySampleMethod(int param1, string param2, Hashtable ht)
{
    if(ht==null)
    {
        ht = new Hashtable();
    }
    ht.Add("testKey","testData");

    DataSet ds = new DataSet();
    ds.Tables.Add();
    ds.Tables[0].Columns.Add("Column1");
    ds.Tables[0].Columns.Add("Column2");
    ds.Tables[0].Columns.Add("Column3");

    DataRow dr = ds.Tables[0].NewRow();
    dr["Column1"] = "My column 1";
    dr["Column2"] = "My column 2";
    dr["Column3"] = "My column 3";
    ds.Tables[0].Rows.Add(dr);

    DataRow dr1 = ds.Tables[0].NewRow();
    dr1["Column1"] = param1.ToString();
    dr1["Column2"] = param2;
    dr1["Column3"] = ht["testKey"].ToString();
    ds.Tables[0].Rows.Add(dr1);

    return ds;
}
Run Code Online (Sandbox Code Playgroud)

nunit

0
推荐指数
1
解决办法
2382
查看次数

在VB.NET中找不到HttpContextBase类型(使用带有ASP.NET MVC的Rhino Mocks)

我正在尝试使用Rhino Mocks在VB.NET中实现HtmlHelperTest.cs中的GetHttpContext函数,但是我没有定义"Type'HttpContextBase'." 编译器建议将其更改为,但是当我这样做时,我得到一个运行时错误,密封的类不能被模拟.HttpContext

我的测试项目引用了System.Web并且还导入了该命名空间.还有什么我需要做的才能让HttpContextBase类型对我想要的代码可见吗?

这是代码,但我不知道它与问题有多相关.

Imports NUnit.Framework
Imports Rhino.Mocks
Imports System.Web.Routing

<TestFixture()> _
Public Class XhtmlHelperTest

    Public Const AppPathModifier = "/$(SESSION)"

    'Various test methods here...'

    Private Shared Function GetHttpContext(ByVal appPath As String, _
                                           ByVal requestPath As String, _
                                           ByVal httpMethod As String, _
                                           Optional ByVal protocol As String = "http", _
                                           Optional ByVal port As Integer = -1 _
                                           ) As HttpContextBase
        Dim mockHttpContext = MockRepository.GenerateMock(Of HttpContextBase)()

        If Not String.IsNullOrEmpty(appPath) Then
            mockHttpContext.Expect(Function(hc) hc.Request.ApplicationPath).Return(appPath) …
Run Code Online (Sandbox Code Playgroud)

vb.net asp.net-mvc nunit rhino-mocks

0
推荐指数
1
解决办法
923
查看次数

nunit单元测试的参考/指南

任何人都可以提出有关nunit和visual studio 2008入门的好参考/指南.(除了Nunit文档本身!).我特别想在vs 2008中建立一个测试项目.

c# nunit unit-testing nunit-2.5 visual-studio-2008

0
推荐指数
1
解决办法
569
查看次数