首页 > 解决方案 > 每次运行测试时如何增加一个 int

问题描述

我正在测试一个数据库的方法,但我的插入测试有问题,因为我的对象有一个自动增量 ID,它是在插入对象时默认创建的,但它的名称也必须是唯一的,所以第一次我运行我的测试,它运行良好,但仅此而已。我虽然要放置一个 int i = 0 然后递增它并将其插入到我的字符串中,但是每次运行测试时它都会重置,因此它不起作用。有任何想法吗?

这是我的测试:

public async Task CanCreateStringSignal()
{
    var s = new SignalsDTO()
    {
        Name = "Signal",
        TagType = "String",
        Description = "Foo"
    };
    
    var idReturn = await _handler.Create(s);
    var signal = await _handler.GetSignalsByName("Signal");

    Assert.IsNotNull(signal);
    Assert.IsInstanceOfType(signal, typeof(SignalsDTO));
    Assert.AreEqual("Signal", signal.Name);
    Assert.AreEqual(idReturn, signal.IDTag);
}

标签: c#unit-testing

解决方案


只需附加一些 GUID 就可以了:

Name = "Signal" + Guid.NewGuid()

现在,每次运行,现在和 100 年后,这个名字都将是独一无二的。


推荐阅读