Я хочу проверить (с using Microsoft.VisualStudio.TestTools.UnitTesting
), что верхняя строка этой тестовой функции вызывает выброс DataMisalignedException
.Преобразование функции с двумя параметрами в лямбда-действие
namespace xxx.Services.SupplierApiTests
{
[TestClass]
public class JsonSchemaValidatorTests
{
[TestMethod]
public void ShouldThrowOnBadPhoneNumber()
{
JsonSchemaValidator.validateAgainstJsonSchema(ProviderService.getErronousProviders(), "./provider-schema.json");
Action<IList, string> myAction = (x, y) => JsonSchemaValidator.validateAgainstJsonSchema(x, y);
Assert.ThrowsException<DataMisalignedException>(myAction);
}
}
}
Как я могу использовать JsonSchemaValidator.validateAgainstJsonSchema
как действие, переходящий в двух аргументах из верхней строки теста? Моя попытка находится в коде выше, но не передает два параметра.
Я думаю, что вы хотите 'Assert.ThrowsException (() => JsonSchemaValidator.validateAgainstJsonSchema (ProviderService.getErronousProviders(), "./provider-schema.json"))', но я не могу чтобы найти документы для 'Assert.ThrowsException', я обычно просто использую атрибут« ExpectedException »для самого теста. –
juharr
@juharr Да, это то, что я искал. Я вижу, что это не преобразование функции, она вызывает ее в анонимной функции. Cheers – BeniaminoBaggins
Я предполагаю, что 'Assert.ThrowsException' ожидает' Action', а не 'Action'. –
juharr