Код: Выделить всё
Exception has occurred: CLR/System.AccessViolationException
An unhandled exception of type 'System.AccessViolationException' occurred in GodotSharp.dll: 'Attempted to read or write protected memory. This is often an indication that other memory is corrupt.'
using Godot;
using System;
using System.Collections.Generic;
///
/// A playing card.
///
public partial class Card: Node2D
{
public CardNumber CardNumber { get; set; }
public CardSuit CardSuit { get; set; }
public double CalculateCardScore(TrumpSuit trump, int deckSize = 52)
{
var cardsBeaten = (int)this.CardNumber - 2;
return cardsBeaten;
}
}
< /code>
Я создал этот модульный тест для метода CalculateCardscore (): < /p>
namespace BlogTheGameUnitTests;
public class CardTests
{
[Fact]
public void CardCalculateCardScore_NoTrumps_DefaultDeckSize()
{
// Arrange
Card testCard = new() { CardNumber = CardNumber.SEVEN, CardSuit = CardSuit.HEART };
double expectedScore = (double)(((int)testCard.CardNumber - 2) / 51);
// Act
double actualScore = testCard.CalculateCardScore(TrumpSuit.NO_TRUMP);
// Assert
Assert.Equal(1, actualScore);
}
}
< /code>
Я ожидал, что этот тест не пройдет (тестируемый метод находится в процессе работы, поэтому с использованием TDD я в конечном итоге получил тест для прохождения), вместо того, чтобы бросить систему. Связано с моей конкретной проблемой - этот пост Reddit. У него нет ответа, который решает его, но вопрос, похоже, намекает на ядро C ++ движения Godot, не работающего при выполнении этих модульных тестов, что приводит к этому исключению при попытке создания каких -либо объектов, наследующих от Node2d. Как мне предотвратить это исключение, чтобы я мог правильно запустить свой модульный тест?
Подробнее здесь: https://stackoverflow.com/questions/797 ... it-test-fo
Мобильная версия