小编Mat*_*nce的帖子

C#Rhino在第二次调用中使用硬编码参数模拟stubmethod

这可能不是甚至可能的事情,但我想我还是会问.反正我是否存在这个方法,以便使用我正在测试的方法中提供的参数来删除第二个调用?

存根的方法:

public SupportDetails GetSupportDetails(string languageKey)
{
    var result = FindSupportDetails(languageKey);

    return result ?? FindSupportDetails("en-us");
}
Run Code Online (Sandbox Code Playgroud)

我当前的测试:

public void GetsUSDetails_IfLangKeyDoesNotExist()
{
    var langKey = "it-it";

    _repo.Stub(s => s.FindSupportDetails(langKey))
         .Return(supportDetails.Where(sd => sd.LanguageKey == langKey)
                               .SingleOrDefault());

    ISupportRepository repo = _repo;
    var actual = repo.GetSupportDetails(langKey);

    Assert.AreEqual("en-us", actual.LanguageKey);
}
Run Code Online (Sandbox Code Playgroud)

以及测试中使用的supportDetails对象:

supportDetails = new SupportDetails[]
        {
            new SupportDetails()
            {
                ContactSupportDetailsID = 1,
                LanguageKey = "en-us"
            },
            new SupportDetails()
            {
                ContactSupportDetailsID = 2,
                LanguageKey = "en-gb"
            },
            new SupportDetails()
            {
                ContactSupportDetailsID = 3,
                LanguageKey = "es-es" …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing rhino-mocks mocking

5
推荐指数
1
解决办法
114
查看次数

NoMethodError:未定义的方法“摘要”

我正在通过Rails教程进行工作,并且正在尝试测试有效的用户登录名。 但是,当我运行测试时,我得到了NoMethodError:undefined method`digest'。我已经查看了所有内容,但不明白为什么会收到此错误。我什至采取了复制/粘贴教程代码的方式,以确保它不是拼写错误或键入时遗漏的其他内容。

这是我的用户模型:

class User < ApplicationRecord
  before_save { email.downcase! }
  validates :name, presence: true, length: { maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
  validates :email, presence: true, length: { maximum: 255 },
                    format: { with: VALID_EMAIL_REGEX },
                    uniqueness: { case_sensitive: false }
  has_secure_password
  validates :password, presence: true, length: { minimum: 6 }

  def User.digest(string)
      cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST :
                                                    BCrypt::Engine.cost
      BCrypt::Password.create(string, cost: cost)
  end
end
Run Code Online (Sandbox Code Playgroud)

和我的装置:

test_user:
    name: Test User
    email: testuser@example.com
    password_digest: <%= User.digest('password') %>
Run Code Online (Sandbox Code Playgroud)

和我的测试: …

ruby ruby-on-rails

5
推荐指数
1
解决办法
503
查看次数

标签 统计

.net ×1

c# ×1

mocking ×1

rhino-mocks ×1

ruby ×1

ruby-on-rails ×1

unit-testing ×1