我正在嘗試為其中一個存盤程序撰寫單元測驗。在模型中,我稍后將它作為 guid 串列傳遞給存盤程序,我正在對其進行序列化,因為 SQL 不接受 GUID 串列。
我有點困惑我應該如何為單元測驗初始化??它,存盤程序的資料
IEnumerable<Guid> aOfferId
這是存盤程序類:
{
[Schema(SqlSchema.Offer)]
public class testO : StoredProcedure<int>
{
public testO(Guid tId,IEnumerable<Guid>OfferId, Guid userId)
{
TID = tId;
AdvertOfferId =JsonConvert.SerializeObject(advertOfferId);
PUserId = userId;
}
public override Task<int> RunAsync() => ExecuteAsync();
}
}
AdvertOfferId = JsonConvert.SerializeObject(advertOfferId);
{
using System;
s;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
[TestClass]
public class testOTests
{
[TestMethod]
public void NonNullTests()
{
// var advertOfferSerialize= JsonConvert.SerializeObject(advertOfferId);
var sproc = new testO(tId, aId, userId);
Assert.AreEqual(aId, sproc.AId);
}
}
}
如果我像上面那樣初始化資料,我的測驗會失敗。
uj5u.com熱心網友回復:
如果你問我,它應該是這樣作業的:
using System;
using System.Collections.Generic;
using CCE.Core.Models.SQL.Schemas.Offer.StoredProcedures;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
namespace CCE.Offers.UnitTests.SQL.StoredProcedure
{
[TestClass]
public class ArchiveCpgOfferTests
{
[TestMethod]
public void NonNullTests()
{
//arrange
var tenantId = Guid.Empty;
var portalUserId = Guid.Empty;
var advertOfferId = new List<Guid> { Guid.NewGuid() };
var advertOfferSerialized = JsonConvert.SerializeObject(advertOfferId);
//act
var sproc = new ArchiveCpgOffer(tenantId, advertOfferId, portalUserId);
//assert
Assert.AreEqual(advertOfferSerialized, sproc.AdvertOfferId);
//this assertion does not make sense, it's always true:
//Assert.IsNotNull(sproc);
}
}
}
我不確定您的方案有多大用處,但這樣它應該可以編譯和運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511490.html
標籤:C#单元测试
上一篇:如何在測驗中觸發org.springframework.orm.ObjectOptimisticLockingFailureException?
下一篇:單元測驗只運行一次,以陣列為引數
