這是我的測試課[TestClass]public class FooServiceTest{ private IYourRepository _yourRepository; [TestInitialize] public void Initialize() { _yourRepository = new Mock<YourRepository>().Object; } [TestMethod] public void GetPushableEntries_gets_all_pushable_entries() { var yourObjectList = new List<YourObject> { new WaitingQueue { ProfileId = 26, IsDeleted = false, Pushable = true }, new WaitingQueue { ProfileId = 27, IsDeleted = false, Pushable = true }, new WaitingQueue { ProfileId = 28, IsDeleted = false, Pushable = false } }; foreach (var yourObject in yourObjectList) { _yourRepository.Create(yourObject); } var pushableEntries = _yourRepository.GetList(x => x.Pushable); pushableEntries.Count.ShouldEqual(2); pushableEntries.ShouldNotBeNull(); pushableEntries.ShouldBe<IReadOnlyCollection<WaitingQueue>>(); }}這是ShouldEqual方法public static T ShouldEqual<T>(this T actual, object expected){ Assert.AreEqual(expected, actual); return actual;}這是GetList方法public IReadOnlyCollection<T> GetList(Expression<Func<T, bool>> @where, params Expression<Func<T, object>>[] nav){ using (var dbContext = new MyDbContext()) { return GetFiltered(dbContext, nav).Where(where).ToList(); }}每次我運行GetPushableQueues_gets_all_pushable_entries()方法實際值增加2。Assert.AreEqual failed. Expected:<2>. Actual:<2>. //first runAssert.AreEqual failed. Expected:<2>. Actual:<4>. //second runAssert.AreEqual failed. Expected:<2>. Actual:<6>. //third run即使我清理測試項目并重建它,這個問題仍然存在。知道為什么會發生這種情況以及我錯過了什么嗎?注意:還有其他測試方法使用_yourRepository和調用Create方法來創建實體。
MsTest :每次測試方法運行時實際值都會增加
慕蓋茨4494581
2021-11-28 19:40:40