gpt4 book ai didi

c# - NUnit - 测试方法被调用

转载 作者:行者123 更新时间:2023-11-30 21:36:31 25 4
gpt4 key购买 nike

如何测试以下代码?

public void CreateRentalIfNecessary(int? rentalId)
{
if (rentalId.HasValue) { CreateRental(rentalId.Value); }
}

我需要编写一个简单的单元测试来验证 CreateRentalrentalId 不为 null 时被调用。我该如何测试?

那么这里的答案似乎太复杂了:how to assert if a method has been called using nunit

最佳答案

从表面上看这个例子,您正试图同时测试同一对象的两个方法,CreateRentalIfNecessaryCreateRental。由于它们都在同一个对象中,因此您不能使用模拟。这让我得出了几个不同的结论......

  1. 可能不需要其中一种方法。您真的想在不需要时创建一个方法吗?也许您可以删除 ...IfNecessary 变体并始终在 CreateRental 中检查必要性。当然,这是否可能取决于调用方法的方式。

  2. 作为变体,只需让客户进行测试以查看是否需要调用。

  3. 如果两者都是确实需要的,我假设您正在测试CreateRental。在这种情况下,您应该能够为 CreateRentalIfNeeded 重用相同的测试用例。

我的偏好是选择 (1) 之类的东西。您的测试可能会告诉您重构 SUT。

关于c# - NUnit - 测试方法被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48068141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com