ExitConfirmTextTests.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. using YZWater.Core.Services;
  2. using Xunit;
  3. namespace YZWater.Core.Tests.Services;
  4. /// <summary>
  5. /// 退出确认框文案:确保中英两份字典都有键。
  6. /// Get() 对缺失键回退成键名本身,所以判据用"两种语言结果不同",
  7. /// 不能用"文本不等于键名"(["Cancel"] = "Cancel" 这类同义项是合法的)。
  8. /// </summary>
  9. [Collection("Language")]
  10. public class ExitConfirmTextTests : IDisposable
  11. {
  12. private static readonly string[] Keys = { "ExitConfirmTitle", "ExitConfirmMessage", "Confirm", "Cancel" };
  13. public void Dispose() => LanguageService.Instance.IsChinese = true;
  14. [Fact]
  15. public void ExitDialogKeys_ResolveToDifferentTextInBothLanguages()
  16. {
  17. foreach (var key in Keys)
  18. {
  19. LanguageService.Instance.IsChinese = true;
  20. var zh = LanguageService.Instance.Get(key);
  21. LanguageService.Instance.IsChinese = false;
  22. var en = LanguageService.Instance.Get(key);
  23. Assert.False(string.IsNullOrWhiteSpace(zh), $"{key} 中文文案为空");
  24. Assert.False(string.IsNullOrWhiteSpace(en), $"{key} 英文文案为空");
  25. Assert.NotEqual(zh, en);
  26. }
  27. }
  28. }